1. ホーム
  2. パイソン

[解決済み] [Solved] タプルのリストを個々のリストに解凍する方法は?[重複している]。

2022-04-02 17:25:10

質問

<ブロッククオート

重複の可能性があります。

Pythonによるトランスポーズ/アンジップ関数

私はタプルのリストを持っていて、このリストを2つの独立したリストに解凍したいのです。私はPythonでいくつかの標準的な操作を探しています。

>>> l = [(1,2), (3,4), (8,9)]
>>> f_xxx (l)
[ [1, 3, 8], [2, 4, 9] ] 

これを実現するための簡潔でパイソン的な方法を探しています。

基本的に、私が探しているのは zip() という関数があります。

解決方法は?

使用方法 zip(*list) :

>>> l = [(1,2), (3,4), (8,9)]
>>> list(zip(*l))
[(1, 3, 8), (2, 4, 9)]

zip() 機能 は、すべての入力の要素を、最初の値から始めて、次に2番目の値、といった具合に組み合わせます。を使うことで *l あなた のすべてのタプルを適用します。 l として 個別引数 zip() 機能 ということで zip() 対になる 138 を最初に、次に 249 . これらはたまたま列とうまく対応しており、あるいは 転置 l .

zip() はタプルを生成します。ミュータブルリストオブジェクトが必要な場合は、単に map() タプルをリストに変換するか、リスト内包を使用してリストのリストを生成します。

map(list, zip(*l))          # keep it a generator
[list(t) for t in zip(*l)]  # consume the zip generator into a list of lists