列表
1.用 filter过滤负数
from random import randint
data=[randint(-20,20) for _ in range(10) ]
data
filter(lambda x:x>=0,data)
2.用列表解析
[ x for x in data if x>=0]
哪个更好?
用timeit测试时间
timeit filter(lambda x:x>=0,data) #909ns
timeit [ x for x in data if x>=0] #455ns 用这个
字典
1.
d={x: randint (60,100) for x in range (1,21)}
{k:v for k,v in d.iteriters() if v>90}
集合
2.
>>> data
[7, -18, 19, 1, -7, -10, 17, 14, 18, -13]
>>> s=set(data)
>>> s
{1, 7, -18, 14, 17, 18, 19, -13, -10, -7}
>>> { x for x in s if x%3==0}
{18, -18}
Python高级编程-如何在列表,字典,集合中根据条件筛选数据?
最新推荐文章于 2022-04-25 19:43:08 发布