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

时间:2017-08-31 13:27:19

标签: python python-3.x

我将一个SQL表导入到一个列表的python列表中,我希望以一种转置的方式将格式转换为另一种格式,其中键的列为'从输入表中确定哪些元素在输出col中分组。见例子:

输入列表:

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

所需的输出列表:

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

1 个答案:

答案 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',)]