Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:如何在列表中合并内容?_Python_List - Fatal编程技术网

Python:如何在列表中合并内容?

Python:如何在列表中合并内容?,python,list,Python,List,我有以下清单: >>> list_of_list = [ ['a', 2], ['b', 3], ['a', 4, 5] ] 我希望得到以下结果: 1.它可以告诉我有两个不同的项目:“a”和“b” 2.“a”中有2项,“b”中有1项 “a”=[2,4,5] “b”=3 谢谢您可以(应该)使用字典,将每个子列表中的第一项(“键”)映射到每个子列表中的第二项(“值”) 使用defaultdict可以省去用空列表实例化每个新密钥的麻烦 此外,正如eumiro所指出的,为了保持一

我有以下清单:

>>> list_of_list = [  ['a', 2], ['b', 3], ['a', 4, 5]  ]
我希望得到以下结果: 1.它可以告诉我有两个不同的项目:“a”和“b” 2.“a”中有2项,“b”中有1项 “a”=[2,4,5] “b”=3

谢谢

您可以(应该)使用字典,将每个子列表中的第一项(“键”)映射到每个子列表中的第二项(“值”)

使用
defaultdict
可以省去用空列表实例化每个新密钥的麻烦

此外,正如eumiro所指出的,为了保持一致,
'b'
的值应该是一个包含单个项目
3
的列表,而不仅仅是数字
3

from collections import defaultdict

d = defaultdict(list)
for item in list_of_list:
  d[item[0]].append(item[1])

伟大的现在向OP解释,保持字典中的值一致是一个好主意(即
d['b']
应该是
[3]
,而不是
3
)。@eumiro:我不认为这是必要的,他/她可能会很难学会:)回答得好,+1来自我,但解释也会很好。谢谢,但我尝试了d[item][0]].追加(项目[1:])但效果不太好。@Winston如果您不断更新您的问题,我建议的解决方案适用于原始版本。将其调整为适用于包含两个以上项目的子列表并不困难,请仔细考虑。有趣的方式是:
dict((x,[z[1]表示y中的z])表示x,y表示groupby(排序(lst),lambda x:x[0]))
您需要什么