[外链图片转存失败(img-CRpfYNAz-1564054291960)(assets/1564049968398.png)]
列表数据筛选
-
使用 for 循环 速度:* 推荐:*
data = [1, 2, -8, -2, 6, -9, 42, 36] res = [] for i in data: if i > 0: res.append(i) print(res)
-
使用 filter 过滤函数 速度:*** 推荐:***
from random import randint data = [randint(-10, 10) for i in range(10)] res = list(filter(lambda x: x > 0, data))
-
使用 列表推导式 + if 判断 速度:***** 推荐:*****
from random import randint data = [randint(-10, 10) for i in range(10)] res = [i for i in data if i > 0] timeit([i for i in data if i > 0]) # 查看运行速度
字典数据筛选
-
使用 字典推导式 + if 判断 速度:***** 推荐 *****
data = {x: randint(60, 100) for x in range(21)} res = {k: v for k, v in data.items() if v > 90} # 筛选出v大于90的值
字典数据筛选
-
使用 集合推导式 + if 判断 速度:***** 推荐:*****
data = set([randint(-1, 10) for _ in range(10)]) res = {i for i in data if i % 3 == 0} res = {i for i in data if i % 3 == 0}