在列表,字典,集合中根据条件筛选数据
在可迭代对象中根据条件过滤数据,最常用的方法就是使用循环判断、列表推导式、高阶函数。
如何过滤列表中的负数
-
使用循环判断
from random import randint a = [randint(-10, 10) for _ in range(10)] print(a) new_list = [] for i in a: if i >=0: new_list.append(i) print(new_list)
-
使用高阶函数filter(func, iterable),func一次作用于iterable元素,根据bool为真保存数据
from random import randint a = [randint(-10, 10) for _ in range(10)] print(a) b = list(filter(lambda x: x >= 0, a)) print(b)
-
使用列表推导式
from random import randint a = [randint(-10, 10) for _ in range(10)] print(a) b = [x for x in a if x >= 0] print(b)
效率依次递增,推导式效率最高
筛选出学生成绩大于90的数据
使用字典推导式
from random import randint
grade = {x: randint(60, 100) for x in range(1, 21)}
b = {k: v for k, v in grade.items() if v >= 90}
print(b)
过滤集合中能被3整除的数
from random import randint
a = {randint(1, 50) for _ in range(20)}
b = {i for i in a if i % 3 != 0}
print(b)
网友评论