filter() 函数是 Python 内置的另一个有用的高阶函数, filter() 函数接收一个函数 f 和一个 list, 这个函数 f 的作用是对每个元素进行判断, 返回 True 或 False,filter() 根据判断结果自动过滤掉不符合条件的元素, 返回由符合条件元素组成的新 list.
- from random import randint
- L1 =[randint(-10,10) for x in range(10)]
- print(L1)
- print (list(filter(lambda x: x>=0, L1)))
思路二: 使用列表生成式
- from random import randint
- L1 =[randint(-10,10) for _ in range(10)]
- print(L1)
- L2 =[x for x in L1 if x>=0]
- print(L2)
题目二: 用字典随机生成班级前 20 号的成绩, 并把大于 60 分的数据输出. key 为学号, value 为成绩
- from random import randint
- data1 ={
- x:randint(30,100)for x in range(1,21)
- }
- print(data1)
- data2 ={
- k:v for k ,v in data1.items() if v>=60
- }
- print(data2)
题目三: 筛选出数组能被 3 整除的子集
- L1 =[randint(30,60) for _ in range (20)]
- print(L1)
- s =set(L1)
- print(s)
- s2 = {x for x in s if x %3==0}
- print(s2)
- #将 list 变为集合, 去重
来源: http://www.bubuko.com/infodetail-2958453.html