Python Note:在列表,字典,集合中筛选数据
Python3 解释器:CPython
编程中我们经常遇到这样的问题,比方说我要根据字典中的值来筛选数据。下面我以从一个列表中筛选出大于等于0的数为例,介绍几种方法
迭代
迭代是最常用的方法,但是性能。。。
#!/usr/bin/python3
data = [1, 5, -3, 2, 6, 0, 9]
res = []
for x in data:
if x >=0:
res.append(x)
print(res)
filter
这个函数有两个参数,一是过滤函数,二是过滤数据
#!/usr/bin/python3
data = [1, 5, -3, 2, 6, 0, 9]
res = list(filter(lambda x: x >= 0, data))
print(res)
解析
下面有请压轴选手。。。
这是最快的方法,所以我比较推荐这种方式
列表解析
#!/usr/bin/python3
data = [1, 5, -3, 2, 6, 0, 9]
res = [x for x in data if x >= 0]
print(res)
字典解析
比方说有一堆学生的成绩,我要过滤出优秀(分数在90分以上(包含90分))然后打印出来
#!/usr/bin/python3
import random
data = {x: random.randint(50,99) for x in range(1,26)}
print(data)
res = {k: v for k, v in data.items() if v >= 90}
print(res)
集合解析
筛选出集合中能被2整除的数
#!/usr/bin/python3
data = [1, 5, -3, 2, 6, 0, 9]
s = set(data)
res = {x for x in s if x % 2 == 0}
print(res)
在无特殊说明的情况下,本站文章均遵循 CC BY-NC-SA 4.0
本文链接:https://blog.iknet.top/post/python-filter-data.html