如何使用映射和过滤器编写以下代码的等效代码?使用映射和过滤器而不是for循环?
res = []
for x in range(5):
if x % 2 == 0:
for y in range(5):
if y % 2 == 1:
res.append((x, y))
这是预期的结果:
[(0, 1), (0, 3), (2, 1), (2, 3), (4, 1), (4, 3)]
这是我写的代码,但它似乎并没有工作:
list(map((lambda x,y: (x,y)), filter((lambda x: x%2 == 0), range(5)), filter((lambda y: y%2 != 0), range(5))))
比较你有两种方法,请记住[可读性计数](https://www.python.org/dev/peps/pep-0020/)。 – Phillip
谢谢。我会记住这一点。我只是想更好地理解地图和过滤器。 :) – Taiwosam