gpt4 book ai didi

python - 在python中对两个列表进行分组

转载 作者:行者123 更新时间:2023-11-28 21:17:41 25 4
gpt4 key购买 nike

我有两个列表,我想根据列表的第一个元素对其进行分组。

list1 = [['1','abc','zef'],['2','qwerty','opo'],['3','lol','pop']]

list2 = [['1','rofl','pole'],['2','sole','pop'],['3','lmao','wtf']]

此处列表中列表中的第一个元素是 '1' 、 '2' 和 '3'。

我希望我的最终列表是这样的:-

Final_List = [['1', 'abc', 'zef', 'rofl', 'pole'], ['3', 'lol', 'pop', 'lmao', 'wtf'], ['2', 'qwerty', 'opo', 'sole', 'pop']]

我已经用下面的代码试过了。

#!/usr/bin/python
list1 = [['1','abc','zef'],['2','qwerty','opo'],['3','lol','pop']]
list2 = [['1','rofl','pole'],['2','sole','pop'],['3','lmao','wtf']]
d = {}
for i in list1:
d[i[0]] = i[1:]
for i in list2:
d[i[0]].extend(i[1:])
Final_List = []
for key, value in d.iteritems():
value.insert(0,key)
Final_List.append(value)

这段代码有效,但我想知道是否有更简单、更简洁的方法来做到这一点

有什么帮助吗?

最佳答案

我会像你写的那样稍微修改一下,像这样

  1. 准备一个字典,其中从第二个位置收集的所有元素对应于第一个元素。

    d = {}
    for items in (list1, list2):
    for item in items:
    d.setdefault(item[0], [item[0]]).extend(item[1:])
  2. 然后从字典中获取所有值(感谢@jamylak):-)

    print(d.values())

输出

[['3', 'lol', 'pop', 'lmao', 'wtf'],
['1', 'abc', 'zef', 'rofl', 'pole'],
['2', 'qwerty', 'opo', 'sole', 'pop']]

关于python - 在python中对两个列表进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27549029/

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