[x for x in data if x >= 0] #列表解析 filter(lambda x: x >= 0, data) #filter解析
{k: v for k, v in d.items() if v > 90}
{x for x in s if x % 3 == 0}
from random import randint randint?
randint? :打印函數信息python
l = [randint(-10, 10) for _ in range(10)] [x for x in l if x >= 0] #篩選數據
執行結果:[5, 9, 10]
g = filter(lambda x: x >= 0, l) next(g)
執行結果:5
python2.7:filter直接返回列表;python3:返回生成器對象,生成器對象是一次性的dom
g = filter(lambda x: x >= 0, l) #篩選數據 list(g)
執行結果:[5, 9, 10]
通常使用列表解析,filter相對慢python2.7
d = {'student%d' % i: randint(50, 100) for i in range(1, 21)} {k : v for k, v in d.items() if v >= 90} #篩選數據
執行結果:{'student2': 94, 'student9': 99, 'student15': 95, 'student16': 92, 'student18': 97, 'student20': 96}
#使用filter g = filter(lambda item: item[1] >= 90, d.items()) #篩選數據 list(g)
執行結果:[('student2', 94), ('student9', 99), ('student15', 95), ('student16', 92), ('student18', 97), ('student20', 96)]
g = filter(lambda item: item[1] >= 90, d.items()) #篩選數據 dict(g)
執行結果:{'student2': 94, 'student9': 99, 'student15': 95, 'student16': 92, 'student18': 97, 'student20': 96}
s = {randint(0, 20) for _ in range(20)} s
執行結果:{0, 1, 2, 3, 4, 9, 10, 12, 13, 18, 19}
{x for x in s if x % 3 == 0} #篩選數據
執行結果:{0, 3, 9, 12, 18}