我将SQL表导入到列表列表中,我想以一种转置方式将格式转换为一种不同的格式,其中键'column'从输入表确定在输出col中分组哪些元素。请参阅示例:
输入列表:
[
(1, 'eq510240'),
(1, 'eq510245'),
(1, 'eq510246'),
(2, 'eq510252'),
(2, 'eq510291'),
(3, 'eq510298')
]
所需的输出列表:
[
('eq510240', 'eq510245', 'eq510246'),
('eq510252', 'eq510291'),
('eq510298')
]
您可以使用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',)]