如何使用map,filter和lambda编写以下代码

时间:2017-08-28 15:21:00

标签: python lambda list-comprehension

[(x, y) for x in range(5) if x % 2 == 0 for y in range(5) if y % 2 == 1]

我知道列表推导更简洁,只是想知道如何在这里使用map,filter和lambda。

谢谢!

1 个答案:

答案 0 :(得分:0)

您的问题无法轻易映射。它基本上只是两个列表产品的过滤问题。因此,使用product中的itertools函数可以实现相同的功能:

from itertools import product
list(filter(lambda pair: pair[0]%2 == 0 and pair[1]%2 == 1, product(range(5), repeat=2)))

封闭的list是因为在Python 3中,filter函数返回一个可迭代的filter object