如何在列表,字典,集合中根据条件筛选数据?
(1)过滤掉列表[3,9,-1,10,20,-2]中的负数;
(2)筛出字典{‘lili’:70, ‘tim’:88, ‘maggie’:99}中值大于90的项;
(3)筛出集合{66,23,32,56}中能被3整除的元素;
解决方案:
(1)列表
方法1:列表解析
[x for x in data if x>=0]
from random import randint
l = [randint(-10, 10) for _ in range(10)] # 产生-10与10之间的10个整数
print(l)
result = [x for x in l if x > 0] # 列表解析
print(result)
方法2:filter函数
filter(lambda x: x>0, data)
(2)字典
方法:字典解析
{k:v for k, v in d.items() if v >90}
(3)集合
方法:集合解析
{x for x in s if x % 3 == 0}