前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用实战题目学习Python

用实战题目学习Python

作者头像
stormwen
发布2019-08-05 10:55:14
5630
发布2019-08-05 10:55:14
举报
文章被收录于专栏:公众号:googpy

昨天在公众号发了第一个广告,是商家主动找的我,考虑到自己现在的粉丝比较少,我没有收取任何广告费。这篇关于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)统计出姓的人的名单;

我先抛个砖,我的代码如下:

代码语言:javascript
复制
from pprint import pprint

def checkName(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)
    pprint(result)

if __name__ == '__main__':
    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"
    checkName(names)

(代码可以左右滑动)

代码解析:

(1)pprint模块,提供了可以按照某个格式正确的显示Python已知类型数据的一种方法,这种格式可被解析器解析,又很易读。

Print()和pprint都是Python的打印模块,功能基本一样,区别是ppint模块打印出来的数据结构更加完整,每行为一个数据结构,更加方便阅读打印输出结果。特别是对于特别长的数据打印,print()输出结果都在一行,不方便查看,而pprint采用分行打印输出,所以对于数据结构比较复杂、数据长度较长的数据,适合采用pprint()打印方式。

(2)title()方法

该方法返回「标题化」的字符串,就是说所有单词都是以大写开始,其余字母均为小写。

语法:str.title()

(3)strip()方法

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

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

(4)split()方法

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

语法:

str.split(str=“”,num=string.count(str))。

str——分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等;num——分割次数。默认为-1,即分割所有。

(5)items()方法

以列表返回可遍历的(键、值)元组或数组。

语法:dict.items(),举例说明:

代码语言:javascript
复制
dict = {'Name': 'Runoob', 'Age': 7}
for i,j in dict.items():
    print(i, ":\t", j)
代码语言:javascript
复制
Name :   Runoob
Age :   7

(6)key=lambda 元素:元素[字段索引]

比如

print(sorted(C,key=lambda x:x[1]))

x:x[1]字母可以随意修改,排序方式按照中括号[]里面的维度进行排序。[0]按照第一维排序,[1]按照第二维排序,[2]按照第三维排序。用实例具体说明一下。

取第一维

代码语言:javascript
复制
num = [(1,2.5), (1.5, 3.2), (1.3, 4.0), (2.2, 1.8)]
y,z = max(num, key=lambda x:x[0])
print(y, z)
代码语言:javascript
复制
2.2 1.8

取第二维

代码语言:javascript
复制
num = [(1,2.5), (1.5, 3.2), (1.3, 4.0), (2.2, 1.8)]
y,z = max(num, key=lambda x:x[1])
print(y, z)
代码语言:javascript
复制
1.3 4.0

取第三维

代码语言:javascript
复制
C = [('e', 4, 2), ('a', 2, 1), ('c', 5, 4), ('b', 3, 3), ('d', 1, 5)]
print(sorted(C, key=lambda x: x[2]))
代码语言:javascript
复制
[('a', 2, 1), ('e', 4, 2), ('b', 3, 3), ('c', 5, 4), ('d', 1, 5)]

今天的分享就这么多,希望对大家理解和巩固Python基础知识有帮助。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 googpy 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档