【发布时间】:2011-06-19 14:07:18
【问题描述】:
过滤器/映射是否等同于列表理解? 假设我有以下功能
def fib_gen():
a,b = 0,1
yield 0
yield 1
while True:
a,b = b,a+b
yield b
现在我可以使用列表推导来列出 fib 数字:
a = fib_gen()
print [a.next() for i in range(int(sys.argv[1]))]
假设我只想列出偶数 fib 数字。我会用过滤器/地图做以下事情:
a = fib_gen()
print filter(even, map(lambda x: a.next(), range(int(sys.argv[1]))))
如何通过列表理解获得相同的结果?
【问题讨论】:
标签: python