2017-08-31 2 views
0

私はSQLテーブルをリストのpythonリストにインポートしました。私はそのフォーマットを一種の転置方法で別のフォーマットに変換したいと思いますここで、入力テーブルのキー '列'は、どの要素が出力colにグループ化されるかを決定します。例を参照してくださいSQLテーブル構造からリストをロードするPythonicの方法、Python 3.x

入力リスト:

[ 
    (1, 'eq510240'), 
    (1, 'eq510245'), 
    (1, 'eq510246'), 
    (2, 'eq510252'), 
    (2, 'eq510291'), 
    (3, 'eq510298') 
] 

所望の出力リスト:

[ 
    ('eq510240', 'eq510245', 'eq510246'), 
    ('eq510252', 'eq510291'), 
    ('eq510298') 
] 
+1

お試しいただけますか?あなたはあなたの試みの[mcve]を提供できますか?間違いましたか? –

答えて

3

あなたが各タプルの最初の値によってグループに要素をitertools.groupbyを使用することができます。次に、リスト内包で、各グループの値からtupleを作成します。

>>> from itertools import groupby 
>>> [tuple(j[1] for j in g[1]) for g in groupby(l, key=lambda i: i[0])] 
[('eq510240', 'eq510245', 'eq510246'), 
('eq510252', 'eq510291'), 
('eq510298',)] 
+0

すばらしい解決策、最小限の調整で作業 – user3431083

関連する問題