1.最简单的方法
1.1for循环遍历再加个判断条件进行筛选
例如筛选列表中大于0的数:
list = [-1, 0, 1, 2, -3]res = []for i in list:if i > = 0:res.append(i)print(res)
2.python中筛选方式
2.1 (list)列表解析
例:筛选目标列表中大于0的值
from random import randint# 创建随机数列表list = [randint(-10,10) for _ in range(10)]# 列表解析筛选大于0的数据[i for i in list if i >=0]
2.2 (list)filter函数解析
filter函数在2.x版本中会直接返回一个列表,在3.x版本中户返回一个生成器对象
py3示例:
from random import randint# 创建随机数列表list = [randint(-10,10) for _ in range(10)]# 使用filter筛选,获取的是一个生成器对象f = filter(lambda x:x >=0, list)# 传给list构造器,生成器对象使用后消耗list(f)
2.3 (dict)字典解析
类似list解析
例:筛选一个班级的分数
from random import randint# 创建一个班级20个学生的分数dict = {'student%d' % i: randint(50, 100) for i in range(1, 21)}# 字典解析筛选分数高于90的{k:v for k, v in d.items() if v >= 90}
2.4 (dict)filter函数解析
与list类似
例:
from random import randint# 创建一个班级20个学生的分数dict = {'student%d' % i: randint(50, 100) for i in range(1, 21)}# 使用filter筛选,获取一个生成器对象f = filter(lambda item: item[1] >= 90, d.items())# 传给字典构造器生成一个过滤后的字典dict(f)
2.5 (set)解析方式同理list和dict
懒
~~
