如何使用映射和過濾器編寫以下代碼的等效代碼?使用映射和過濾器而不是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