過濾器/映射等同於列表理解嗎? 假設我有以下功能過濾器映射vs列表理解
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]))]
假設我想只列出甚至謊數字。我會使用過濾器/地圖執行以下操作:
a = fib_gen()
print filter(even, map(lambda x: a.next(), range(int(sys.argv[1]))))
如何才能獲得與列表理解相同的結果?
感謝。如何在我的例子中過濾包含next()的表達式? –
@Oleg:哦,我添加一些信息,檢查我最新的添加,你會發現你也可以避免'next'。 – Skurmedel