应用场景
从列表、字典、集合中筛选出符合要求的数据项目。
解决方法
迭代序列法
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}