如何将具有相同字符串的嵌套列表附加在一起?

How to append nested lists with same string together?

我有一个如下所示的嵌套列表:

list = [['bob', '12'], ['jim', '14'], ['bob', '13']]

我正在尝试获得以下输出:

list = [['bob', '12', '13'], ['jim', '14']]

有什么办法可以实现。我只能截断嵌套的点亮以删除值,但不能将它们添加到另一个列表中。任何帮助,将不胜感激。谢谢。我尝试了以下方法:

i = 0
while i < len(list):
  find = list[i][0]
  for a, b in list:
    if find == a:
      list[i]].append(b)
i += 1

一种选择是在合并列表时使用临时字典:

tmp = {}
for name, num in lst:
    if name in tmp:
        tmp[name].append(num)
    else:
        tmp[name] = [name, num]
out = list(tmp.values())

输出:

[['bob', '12', '13'], ['jim', '14']]

作为旁注,当您使用 list 作为变量名时,您不能在之后使用 list() 构造函数,因为变量名会隐藏它。所以最好给你的变量起个别的名字。我这里命名为lst

一个肮脏的衬垫:-D

[[k,*v] for k,v in {_ld:[_l[1] for _l in l if _l[0]==_ld] for _ld in {_l[0] for _l in l }}.items()]