gpt4 book ai didi

PYTHON:将嵌套列表中相同值的子列表创建到一个列表中

转载 作者:行者123 更新时间:2023-11-28 21:16:13 30 4
gpt4 key购买 nike

我有一个嵌套列表,其中的列表有两个值,一个单词和一个数字(按第一个值排序 - 单词):

    data=[["apple",2],["cake",5],["cake",8],["chocolate",3],["chocolate",9],["chocolate",10],["grapes",6]]

我怎样才能让它尽可能有效地将具有相同单词的项目组合在一起?所以要使列表看起来像这样:

    data=[ [["apple",2]], [["cake",5],["cake",8]], [["chocolate",3],["chocolate",9],["chocolate",10]],[["grapes",6]] ]

“苹果”和“葡萄”是它们自己的列表,因为它们只在原始列表中出现一次。

这怎么可能?谢谢:)

最佳答案

它是什么itertools.groupby是为了:

>>> from operator import itemgetter
>>> from itertools import groupby
>>> data=[["apple",2],["cake",5],["cake",8],["chocolate",3],["chocolate",9],["chocolate",10],["grapes",6]]
>>> [list(g) for _,g in groupby(sorted(data,key=itemgetter(0)),itemgetter(0))]
[[['apple', 2]], [['cake', 5], ['cake', 8]], [['chocolate', 3], ['chocolate', 9], ['chocolate', 10]], [['grapes', 6]]]
>>>

您可以使用 operator.iemgetter作为 sorted 函数和 groupby 的键!

关于PYTHON:将嵌套列表中相同值的子列表创建到一个列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29052591/

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