Ada*_*Han 3 python dictionary list
我是Python编程的新生。现在我有一个列表“lst”,例如:lst = [(1,'a'), (2,'b'), (2,'c'), (3,'d')],我想从 lst 获取一个字典“d”。“d”应该是{1: ['a'], 2:['b','c'], 3:['d']}。
d = defaultdict(list)
for k,v in lst:
d[k].append(v)
Run Code Online (Sandbox Code Playgroud)
我如何使用理解来实现这一点?
你的解决方案非常好。列表/字典理解并不总是最好的方法。但如果你坚持的话,你可以这样做:
from itertools import groupby
lst = [(1, 'a'), (2, 'b'), (2, 'c'), (3, 'd')]
res = {k: [b for a, b in g] for k, g in groupby(lst, key=lambda x: x[0])}
print(res)
Run Code Online (Sandbox Code Playgroud)
输出:
{1: ['a'], 2: ['b', 'c'], 3: ['d']}
Run Code Online (Sandbox Code Playgroud)
注意:如果您传递一个排序列表,此解决方案将起作用,如果不是,请确保在字典理解中使用它之前对列表进行排序(感谢@Cepner)
sorted_lst = sorted(lst, key=lambda x: x[0])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
810 次 |
| 最近记录: |