我将一个SQL表导入到一个列表的python列表中,我希望以一种转置的方式将格式转换为另一种格式,其中键的列为'从输入表中确定哪些元素在输出col中分组。见例子:
输入列表:
[
(1, 'eq510240'),
(1, 'eq510245'),
(1, 'eq510246'),
(2, 'eq510252'),
(2, 'eq510291'),
(3, 'eq510298')
]
所需的输出列表:
[
('eq510240', 'eq510245', 'eq510246'),
('eq510252', 'eq510291'),
('eq510298')
]
答案 0 :(得分: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',)]