1. ホーム
  2. python

[解決済み] リスト内のリストをZIPで圧縮する方法

2023-01-05 02:59:02

質問

以下のリストを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)]

リストを分割し、個々の要素を 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]