如何在列表,字典,集合中根据条件筛选数据

2019-02-07  本文已影响0人  Diolog

统一使用python3.4以上版本

实际案例:

List:

首先生成随机的列表:

from random import randint
data = [randint(-10,10) for _ in range(10)]

普通做法1:

list_result = list()
for _ in data:
  if _ >= 0:
    list_result.append(_)

做法2:filter函数

list(filter(lambda x:x>=0,data))

做法3:列表解析

[x for x in data if x>=0]

时间比较:

from timeit import timeit
timeit('list(filter(lambda x:x>=0,{0}))'.format(data))
执行时间:
1.0598646074734006
timeit('[x for x in {0} if x>=0]'.format(data))
执行时间:
0.34205928907095995

列表解析更快一些,首选的方式是列表解析。而后两种方式都远快于第一种迭代的方案。

Dict

随机创建班级分数

data = {i:randint(60,100) for i in range(1,21)}

做法:字典解析

{k:v for k,v in data.items() if v>90}

注:
Python3.5中:iteritems变为items

Set

随机生成集合

data = {randint(-10,10) for _ in range(10)}

集合解析:

{x for x in data if x % 3 == 0}
上一篇 下一篇

猜你喜欢

热点阅读