python字符串去头尾_带你认识优秀的python代码

c635401d6f2d6abe8788fa451610ef20.png

有一串长的字符串names = "LI XIA , ZHAO MING ,LAO WANG *,DA XIONG >,LI MEI MEI, CHANG JIANG,LI QIANG,ZHANG WU JI,ZHANG SAN FENG,DU GU QIU BAI,QIAO FENG"。

要求:(1)过滤所有的名字,去掉每个名字左右的空格和乱码,每个名字的首字母大小比如‘LAO WANG*’,处理成‘Lao wang’;(2)统计出最长的名字;(3)统计出同姓人的名单。

解读题目要求,我们可以这样考虑。过滤掉名字左右的空格和乱码,我们可以考虑使用strip函数;每个名字首字母大写,我们可以用title函数;要统计最长的名字,我们需要将每个名字的字符串个数进行切片统计,这里用split函数。

根据上面的思路,编写的代码如下:

names = "LI XIA , ZHAO MING ,LAO WANG *,DA XIONG >,LI MEI MEI,""CHANG JIANG,LI QIANG,ZHANG WU JI,ZHANG SAN FENG,""DU GU QIU BAI,QIAO FENG"
def problems7(names):newnames =[name.title().strip('*>') for name in names.split(',')]names_dict = {name:len(name) for name in newnames}result = sorted(names_dict.items(),key=lambda x:x[1],reverse=True)print(result)problems7(names)

输出的结果是:

[('Zhang San Feng', 14), ('Du Gu Qiu Bai', 13), (' Zhao Ming ', 11), ('Chang Jiang', 11), ('Zhang Wu Ji', 11), ('Li Mei Mei', 10), ('Lao Wang ', 9), ('Da Xiong ', 9), ('Qiao Feng', 9), ('Li Qiang', 8), ('Li Xia ', 7)]

下面介绍刚才使用到的函数。

1.strip函数

用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。但需要注意的是,该方法只能删除开头或结尾的字符,不能删除中间部分的字符。

语法是:str.strip([chars]), chars—移除字符串头尾指定的字符序列。

返回值:返回移除字符串头尾指定的字符生成的新字符串。

2.split函数

通过指定分隔符对字符串进行切片,如果参数num有指定值,则分隔num+1个子字符串。

语法:str.split(str=“ ”,num=string.count(str))。str—分隔符,默认为所有的空字符,包括空格、换行、制表符等;num—分割次数,默认为-1,即分隔所有。

最后,给大家介绍一些优秀的python代码。

1.简洁的表达式,比如if/else放在一行里面

def test(m):return 'a' if m==1 else 'b'

2.构成一个字典序列

print(dict(zip('abcd',range(4))))    >>{'a':0, 'c':2, 'b':1,'d':3}

3.if else print一行搞定

print('ok' if a==1 else 'ko')

4.一行代码,巧妙的求解:列出1到20的数字,若是3的倍数就用apple代替,若是5的倍数就用orange代替,若既是3的倍数又是5的倍数就用appleorange代替。

print(['apple'[i%35::]+'orange'[i%56::] or i for i in range(1,21)])

很多问题一行代码都可以搞定,但是我觉得作为一个小白,咱们还是老老实实的一步一步的编写代码,等到自己有能力的时候,在玩这些骚操作吧。

今天的分享就到这里,我尽可能地把每一个问题都讲透彻,希望小伙伴们一定要动手操作,把每个代码都亲手敲一遍。别人的思考应该是你思考的起点,但绝非是你思考的终点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/257739.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python学习笔记之装饰器、递归、算法(第四天)

参考老师的博客: 金角:http://www.cnblogs.com/alex3714/articles/5161349.html 银角:http://www.cnblogs.com/wupeiqi/articles/4963027.html 一、冒泡算法实例: a [32,5,22,41,7,31,12,102,74,37,9,25] 1、方法1: c…

数字信号处理笔记1-信号与常见操作

年轻人,你对数学一无所知,你只是习惯了而已。 —冯诺伊曼 前言 本学期开始跟着实验室学习计算机视觉领域,而一个重要的基础知识就是《数字图像处理》,而数字信号处理作为一个大类,可以将数字图像处理理解为数字信号处…

[linux驱动]linux驱动模块

一,内核模块的概念 经常在内核驱动代码看到类似fs_init()等驱动初始化函数,那么这个和module_init()函数的差别在哪里,宏定义__define_initcall(level,fn)对于内核的初始化很重要,他指示编译器在编译的时候,将一系列初…

看我如何基于PythonFacepp打造智能监控系统

由于种种原因,最近想亲自做一个基于python&facepp打造的智能监控系统。 000:萌芽 1:暑假在家很无聊 想出去玩,找不到人。玩个lol(已卸载),老是坑人。实在是无聊至极,不过&#x…

c++ 遍历所有点且距离最短_编程小白暑期进阶笔记41-C语言数据结构与算法图遍历的应用...

基于广度优先遍历算法的应用思考题:(思考题答案:BFS(广度优先遍历)在一般的带权图中是不能解决最短路问题,了解BFS的都知道,BFS是根据节点到源节点之间的节点数遍历的,也就是先访问离源节点节点数最少的点。…

underscorejs-groupBy学习

2.18 groupBy 2.18.1 语法 _.groupBy(list, iteratee, [context]) 2.18.2 说明 把list分为多个集合,iterator为分组的依据,返回值为Object list可以是数组、对象、字符串或arguments等iteratee为分组的依据.iterator的参数(value, key, list)iterator如果是function…

关于@WebServlet(“LoginServlet“)404 报错的解决办法 “请求的资源[/test/LoginServlet] 不可用”

关于WebServlet(“LoginServlet”)404 报错的解决办法 “请求的资源[/test/LoginServlet] 不可用” *一切事物的开头总是困难这句话,在任何一种科学上都是适用的。 * ——马克思 一个困扰了我n天的问题,终于终于还是解决了&#…

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建

ASP.NET MVCEF框架EasyUI实现权限管理系列(14)-主框架搭建 原文:ASP.NET MVCEF框架EasyUI实现权限管理系列(14)-主框架搭建ASP.NET MVCEF框架EasyUI实现权限管系列 (开篇) (1):框架搭建 (2):数据库访问层的设计Demo (3):面向接口编程 (4 ):业务逻辑层的封装 (5):前台…

常用事务代码 sap_SAP_PS_事务代码

[转]SAP PS常用事务代码T-CODESAP项目系统(Project System,以下简称PS)模块作为传统的非常规模块(除FI、CO、MM、PP、SD之外的模块)之一,在最近几年在国内也得到的较为广泛的应用,与PS应用火热场景相对应的是PS内外部顾问的极度缺乏。这种缺乏一方面表现…

Java 冒泡排序的实现

实现原理: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个…

CLion for mac安装配置

前言 本文详细多图介绍 IntelliJ IDEA For Mac的激活教程,相当于永久激活 文件包百度云下载:(通过与熊论道网站解密) 熊曰:呋溫捕嘿誘襲氏樣溫住既非破哮誒襲非捕溫肉性盜森魚非襲啽蜜呦訴嘿溫類盜山寶住出森非喜誘捕發嗥既肉嗅…

solr后台界面介绍——(十一)

1.加一个collection的方法 复制solr-home下的collection1,修改名字为collection2。并且修改collection2文件夹中配置文件core.properties中的名字为collection2,重启服务器。 2.后台界面介绍 Dashboard 仪表盘,显示了该Solr实例开始启动运行的…

功率信号与能量信号的超棒理解!

功率信号与能量信号的理解! 功率信号和能量信号一直是一个令我疑惑的概念,一个无限一个为零。但是下面令我茅塞顿开! ~~~分割线啊分割线~~~

vscode终端不识别python_VSCode无法识别我的已安装Python包

Windows上的VSCode与Python。 Don安装的Python扩展,不确定它有什么不同,但考虑给我的环境使用VSCode for Python,在那个过程中,我安装了metapy包。我能够在VSCode中的终端窗口内运行此metapy,但不能在编辑器中运行PS C…

现在也是只能谢谢随笔了,但是在以后收货的日子里会有更多的感想记下

每天虽然都会在各个方面都记下一点日常事务的说明,但是会有重复,以后工作了向高中一样一定会有许多的话,但是我不希望这是一些抱怨,更多的应该是收货,这几天也是早上不知怎么会有点头疼,加上每天取暖口有点…

[转载]AngularJS之Factory vs Service vs Provider

http://www.oschina.net/translate/angularjs-factory-vs-service-vs-provider http://tylermcginnis.com/angularjs-factory-vs-service-vs-provider/ 要注意的文章中,app.provider(...)里的代码有点出处,之后作者改过,但是转载的网站上图片…

C#学习笔记:预处理指令

C#和C/C一样,也支持预处理指令,下面我们来看看C#中的预处理指令。 #region 代码折叠功能,配合#endregion使用,如下: 点击后如下: 条件预处理 条件预处理可以根据给出的条件决定最终进行编译的代码&#xff…

android sh 指令_Java/Android中实现Shell命令

有时候我们需要实现一个功能。不过这个功能用我们传统的Java代码实现起来会有一些困难,这时我们可以尝试利用Shell命令来实现。你可以按照下面的代码模块来进行你想要实现的Shell命令(注:也不是所有的Shell命令都能用Java代码来实现)。public class Main…

【数字信号处理】 第二章、时域中的离散时间信号

前言 学而时习之,不亦乐乎? ——《论语学而》 Is it not pleasant to learn with a constant perseverance and application? 。 第二章 时域中的离散时间信号 一、离散信号的基本定义 1、两个基本类型 抽样数据类型:即模拟信号通过定周期进行采样…

开机流程与主引导分区(MBR)——鸟哥私房菜

在前篇随笔中,已经谈到了CMOS与BIOS,CMOS是记录各项硬件参数(包括系统时间、设备的I/O地址、CPU的电压和频率等)且嵌入到主板上面的存储器,BIOS是一个写入到主板上的韧体(韧体是写入到硬件上的一个软件程序…