4

1つのリスト引数map()をリストの理解に置き換えることができます。例えば並行して2つのリストのマップに相当するリストの理解

map(lambda x : x**2, range(5)) 

は今、私は2つの並列リストの似た何かをするだろうか

[x**2 for x in range(5)] 

に置き換えることができます。

map(func, xs, ys) 

func()は、2つの引数を取ります。言い換えれば、私は次のパターンを使用してコードの行を持っています。

同じことをリストの理解でどのように行うことができますか?

答えて

8

map()複数の引数を使用する場合は、これらの余分な引数にzip() functionを使用するのと同じです。同じことを行うためにリスト内包でzip()を使用します。

[func(x, y) for x, y in zip(xs, ys)] 

は一般的に、任意のmap(func, a1, a2, .., an)式が[func(*args) for args in zip(a1, a2, .., an)]でリストの内包に変換することができます。

+0

この回答は、古い、一般的な正規の複製よりも徹底的ではありません。 – TigerhawkT3

+0

@ TigerhawkT3:私は気付いていなかったが存在した。この答えは今、別の質問と比較して判断されていますか? –

+0

「zip」についての質問はまだありませんでしたか? – TigerhawkT3

関連する問題