01 如何在列表、字典、集合中筛选数据

2019-04-27  本文已影响0人  追日填海

应用场景

从列表、字典、集合中筛选出符合要求的数据项目。

解决方法

迭代序列法

from random import randint
data = [randint(-10, 10) for _ in xrange(10)]
def select(data):
  result = []
  for e in data:
    if e>0: result.append(e)

这种方法容易理解,但是效率低下,十分丑陋。

filter函数法

from random import randint
data = [randint(-10, 10) for _ in xrange(10)]
def select(data):
  return filter(lamda x:x>0, data)

列表解析法

from random import randint
data = [randint(-10, 10) for _ in xrange(10)]
def select(data):
  return [x for x in data if x>0]

对于字典,有字典解析法。

d = {x: randint(60,100) for x in xrange(1,21)}
{k:v for k, v in d.iteritems() if v>90}

对于集合,有集合解析法。

data = [randint(-10, 10) for _ in xrange(10)]
s = set(data)
{x for x in s if x % 4 == 0}
上一篇下一篇

猜你喜欢

热点阅读