Skip to main content
 首页 » 编程设计

python之在键上连接字典

2025年05月04日29shihaiming

我有一个字典列表(包含从 API 获取的一些数据)假设:

alist = [{'a':1, 'b':2, 'c':3}, {'a':1, 'b':2, 'c':35}, {'a':1, 'b':2, 'c':87}..] 

在alist中有多个重复的字典。但是在重复的字典中只有一个键有不同的值。所以,查询是:

通过在列表中保留单独的值来组合这些字典的最简单方法是什么?

喜欢:

alist = [{'a':1, 'b':2, 'c':[3, 35, 87]}...] 

更新 - 我有一个列表,其中指定了重复的键,例如:

repeated_keys = ['c',...]  

请您参考如下方法:

使用defaultdict(速度更快)并从中生成字典——您还可以轻松将该字典转换为列表。您可以修改i中的j。 keys() 过滤键。

from  collections import defaultdict as df 
 
d=df(list) 
 
alist = [{'a':1, 'b':2, 'c':3}, {'a':1, 'b':2, 'c':35}, {'a':1, 'b':2, 'c':87}] 
 
for i in alist: 
    for j in i.keys(): 
        d[j].append(i[j]) 
 
print dict(d.items()) 

输出-

{'a': [1, 1, 1], 'c': [3, 35, 87], 'b': [2, 2, 2]} 

如果你想从中删除重复的元素,请使用 dict-comprehension 和 set-

>>>{k:list(set(v)) for k,v in d.items()} 
>>>{'a': [1], 'c': [35, 3, 87], 'b': [2]}