[(x, y) for x in range(5) if x % 2 == 0 for y in range(5) if y % 2 == 1]
我知道列表推导更简洁,只是想知道如何在这里使用map,filter和lambda。
谢谢!
答案 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
。