我应该如何打破元组列表,使其形成具有相同键的列表?

2024-04-19 23:48:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有

iList = [('FirstParam', 1), ('FirstParam', 2), 
         ('FirstParam', 3), ('FirstParam', 4), 
         ('SecondParam', 5), ('SecondParam', 6), 
         ('SecondParam', 7)]

我试图形成:

iList1 = [('FirstParam', 1), ('FirstParam', 2), 
         ('FirstParam', 3), ('FirstParam', 4)]

iList2 = [('SecondParam', 5), ('SecondParam', 6), 
         ('SecondParam', 7)]

我试过:

for key, group in itertools.groupby(iList, operator.itemgetter(0)):
    print "List",(list(group))

它打印出我想要的两张单子。 输出:

List [('FirstParam', 1), ('FirstParam', 2), 
         ('FirstParam', 3), ('FirstParam', 4)]
List [('SecondParam', 5), ('SecondParam', 6), 
         ('SecondParam', 7)]

我关心的是,我应该如何使它们成为iList1和iList2? 我不懂(list(group))工作和打印列表的方式


Tags: keyinforgroupoperatorlistitertoolsgroupby
1条回答
网友
1楼 · 发布于 2024-04-19 23:48:10

您可以使用列表理解并将其分解为iList1iList2

iList1, iList2 = [list(group) for key, group in itertools.groupby(iList, operator.itemgetter(0))]

然后你会得到你想要的:

>>> iList1
[('FirstParam', 1), ('FirstParam', 2), ('FirstParam', 3), ('FirstParam', 4)]
>>> iList2
[('SecondParam', 5), ('SecondParam', 6), ('SecondParam', 7)]

相关问题 更多 >