实际案例
过滤掉列表[3,9,-1,10,20,-2…]中的负数
筛选字典{‘LiLei’:79,’Jim’:88,’Lucy’:92…}中值高于90的项
- 筛选集合{77,89,32,20…}中能被3整除的元素
对于以上问题,通常做法是通过迭代循环解决。比如问题1解决代码如下:
1 | data = [1,5,-3,-2,6,0,9] |
在列表中根据条件筛选数据
filter函数
列表解析
一.filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
该函数接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
1
2
3
4
5from random import randint
data = [randint(-10, 10) for _ in range(10)]
print(data)
res = filter(lambda x: x >= 0, data)
print(res)注:lambda函数是匿名函数
二.列表解析
1
[x for x in data if x >= 0]
在字典中根据条件筛选数据
1 | from random import randint |
在集合中根据条件筛选数据
1 | data = [randint(-10, 10) for _ in range(10)] |