gpt4 book ai didi

python - 根据共同的第一项将子列表分类为新的子列表

转载 作者:行者123 更新时间:2023-11-28 23:04:48 24 4
gpt4 key购买 nike

我有大量的二元子列表,它们是名为 mylist 的列表的成员:

mylist = [['AB001', 22100],
['AB001', 32935],
['XC013', 99834],
['VD126', 18884],
['AB001', 34439],
['XC013', 86701]]

我想根据子列表是否包含与第一项相同的字符串,将 mylist 排序为新的子列表。例如,这就是我正在寻找要输出的代码:

newlist = [['AB001', 22100], ['AB001', 32935], ['AB001', 34439]],
[['XC013', 99834], ['XC013', 86701]],
[['VD126', 18884]]

这是我尝试编写代码的方式:

mylist = sorted(mylist)
newlist = []
for sublist in mylist:
id = sublist[0]
if id == next.id:
newlist.append(id)
print newlist

我还试图了解 itertools.groupby() 是否是解决此问题的正确工具。有人可以帮我解决这个问题吗?

最佳答案

你说这是 groupby 的工作是对的:

from itertools import groupby
from operator import itemgetter

mylist = [['AB001', 22100],
['AB001', 32935],
['XC013', 99834],
['VD126', 18884],
['AB001', 4439],
['XC013', 86701]]

print([list(value) for key, value in groupby(sorted(mylist), key=itemgetter(0))])

这将为您提供一个列表列表,按子列表中的第一项分组。

[[['AB001', 4439], ['AB001', 22100], ['AB001', 32935]], 
[['VD126', 18884]],
[['XC013', 86701], ['XC013', 99834]]]

关于python - 根据共同的第一项将子列表分类为新的子列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7114038/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com