从SQL表结构加载列表的Pythonic方法,Python3.x



我将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',)]

最新更新