list(map(lambda x, y: x+y, [1,2,3], [1,2,3,4]))
2 つのリストの長さが異なる場合、プログラムは一方が反復を終了するまで評価しますか? したがって、上記の例では、[2, 4, 6] になります。
list(map(lambda x, y: x+y, [1,2,3], [1,2,3,4]))
2 つのリストの長さが異なる場合、プログラムは一方が反復を終了するまで評価しますか? したがって、上記の例では、[2, 4, 6] になります。
はい、最短の入力引数は、入力の長さの境界を設定するために使用されます。ドキュメントによると:
関数を iterable のすべての項目に適用し、結果を生成する反復子を返します。追加の iterable 引数が渡された場合、関数はその数の引数を受け取る必要があり、すべての iterable の項目に並列に適用されます。複数の iterable を使用すると、最短の iterable が使い果たされるとイテレータが停止します。
注目すべき点: これは、最長のリストを使用して評価し、必要に応じて短いリストを拡張する Python 2.x の動作とは異なりNone
ます。
Python 3.3 リファレンス:
map(function, iterable, ...) : 関数を iterable のすべての項目に適用し、結果を生成する反復子を返します。追加の iterable 引数が渡された場合、関数はその数の引数を受け取る必要があり、すべての iterable の項目に並列に適用されます。複数の iterable を使用すると、最短の iterable が使い果たされるとイテレータが停止します。