如何在列表, 字典, 集合中根据条件筛选数据

过滤掉列表[3,6,-4,9,7,-8,9]的负数

新手方法:

data =  [5,6,-8,3,-2,4,-7]
res = [ ]

for x in data; if x >=0; res.append(x) print (res)

improt random data = [random.randint(-10,10) for _ in range(10)] //生成 10个随机数

老鸟的做法

方法一:

data2 = filter(lambda x: x>=0 , data)
print(list(data2))

方法二:

[x for x in data if x >=0]

筛选字典中高于90的项。

随机给20个学生生成60-100的分数 然后过滤过出分数大于90的人

d = {x: random.randint(60,100) for x in range(1,21) }
{k:v for k, v in d.items() if v >= 90}

筛选集合中能被3整除的元素

把data中的数据做成集合然后再筛选出来。

s=set(data)
{x for x in s if x % 3 ==0}

评论 1