如何在列表,字典,集合中根据条件筛选
核心:使用生成式
列表:
生成随机列表:
from random import randint
data = [randint(-10,10) for _ in range(10)] #for只是决定[]内循环的次数 筛选>=0的
筛选方法:
#方法1:
filter(lambda x: x >= 0,data)
#方法2:
[x for x in data if x >= 0] #更快
#使用 timeit 测试
timeit filter(lambda x: x >= 0,data)
100000 loops, best of 3: 3.04 µs per loop
timeit [x for x in data if x >= 0]
1000000 loops, best of 3: 1.38 µs per loop
#明显使用生成式 要更节约时间
字典:
生成字典:
d = {x:randint(60,100) for x in range(1,21)} #某班级20人分数60 - 90 筛选90以上的
筛选方法:
{k:v for k,v in d.iteritems() if v > 90}
集合:
s = set(data) 使用列表的数据
筛选方法:
{x for x in s if x % 3 == 0}
网友评论