工作中经常要处理各种各样的数据,遇到项目赶进度的时候自己写函数容易浪费时间。
Python 中有很多内置函数帮你提高工作效率!
一:根据条件在序列中筛选数据
1.假设有一个数字列表 data, 过滤列表中的负数
使用列表推导式:
result = [iforiindataifi >=0]
使用 fliter 过滤函数:
result = fliter(lambdax: x>=0, data)
2.学生的数学分数以字典形式存储,筛选其中分数大于 80 分的同学
二:对字典的键值对进行翻转
使用 zip() 函数
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
三. 统计序列中元素出现的频度
1.某随机序列中,找到出现次数最高的3个元素,它们出现的次数是多少?
构造随机序列如下:
data = [randint(0,20)for_inrange(20)]
方法1: 可以使用字典来统计,以列表中的数据为键,以出现的次数为值
方法2:直接使用 collections 模块下面的 Counter 对象
2. 对某英文文章单词进行统计,找到出现次数最高的单词以及出现的次数
通过上面的练习,我们知道可以用 Counter 来解决
四.根据字典中值的大小,对字典中的项进行排序
比如班级中学生的数学成绩以字典的形式存储:
{"Lnad":88,"Jim",71...}
请按数学成绩从高到底进行排序!
方法1: 利用 zip 将字典转化为元组,再用 sorted 进行排序
方法2: 利用 sorted 函数的 key 参数
五. 在多个字典中找到公共键
实际场景:在足球联赛中,统计每轮比赛都有进球的球员
第一轮:{"C罗": 1, "苏亚雷斯":2, "托雷斯": 1..}
第二轮:{"内马尔": 1, "梅西":2, "姆巴佩": 3..}
第三轮:{"姆巴佩": 2, "C罗":2, "内马尔": 1..}
模拟随机的进球球员和进球数
首先获取字典的 keys,然后取每轮比赛 key 的交集。由于比赛轮次数是不定的,所以使用 map 来批量操作
map(dict.keys, [s1, s2, s3])
然后一直累积取其交集,使用 reduce 函数
reduce(lambdax,y: x & y, map(dict.keys, [s1, s2, s3]))
一行代码搞定!
网友评论