优秀的python代码_带你认识优秀的python代码

有一串长的字符串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)])

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值