次のリストのリストを圧縮したい:
>>> Zip([[1,2], [3,4], [5,6]])
[[1,3,5], [2,4,6]]
これは、リストが個々のコンポーネントに分割されている場合にのみ、現在のZip
実装で実現できます。
>>> Zip([1,2], [3,4], [5,6])
(1, 3, 5), (2, 4, 6)]
リストを分割して個々の要素をZip
に渡す方法がわかりません。機能的な解決策が好ましい。
これを試して:
>>> Zip(*[[1,2], [3,4], [5,6]])
[(1, 3, 5), (2, 4, 6)]
引数リストの展開 を参照してください:
引数が既にリストまたはタプルにあるが、別の位置引数を必要とする関数呼び出しのためにアンパックする必要がある場合、逆の状況が発生します。たとえば、組み込みのrange()関数では、開始引数と停止引数が別々に必要です。個別に使用できない場合は、*演算子を使用して関数呼び出しを記述し、リストまたはタプルから引数をアンパックします。
>>> range(3, 6) # normal call with separate arguments
[3, 4, 5]
>>> args = [3, 6]
>>> range(*args) # call with arguments unpacked from a list
[3, 4, 5]