Python 在字典列表中合并不同的键

Python 在字典列表中合并不同的键,python,python-3.x,dictionary,merge,Python,Python 3.x,Dictionary,Merge,如果这是一个重复的问题,我提前表示歉意,我非常努力地在堆栈溢出中找到它,但没有成功。 我有一份字典的清单,像下面的那本 d1 = {'saw': ['movie', '14', 'bird', '8', 'light', '5', 'plane', '4', 'man', '4'], 'saw': ['zit', '10', 'popcorn', '6', 'pimple', '6', 'cherry', '5', 'pill', '4'], 'evicted': ['tenant', '66

如果这是一个重复的问题,我提前表示歉意,我非常努力地在堆栈溢出中找到它,但没有成功。 我有一份字典的清单,像下面的那本

d1 = {'saw': ['movie', '14', 'bird', '8', 'light', '5', 'plane', '4', 'man', '4'], 
'saw': ['zit', '10', 'popcorn', '6', 'pimple', '6', 'cherry', '5', 'pill', '4'],
'evicted': ['tenant', '66', 'family', '5', 'renter', '5', 'neighbor', '4'], 
'evicted': ['dog', '9', 'teacher', '9', 'neighbor', '7', 'man', '6', 'girl', '6']}
我想合并不同的项目,根据他们的关键。使它们看起来像:

d2 = {'saw': ['movie', '14', 'bird', '8', 'light', '5', 
'plane', '4', 'man', '4', 'zit', '10', 'popcorn', '6', 'pimple', '6', 
'cherry', '5', 'pill', '4'],
'evicted': ['tenant', '66', 'family', '5', 'renter', '5', 'neighbor', '4', 
'dog', '9', 'teacher', '9', 'neighbor', '7', 'man', '6', 'girl', '6']}
我正在使用此代码,但它没有预期的输出:

d2 = {}
for d in d1:
    for k, v in d1 ():
        if k not in d2: d2 [k] = []
        d2 [k].append (v)
print(d2)

我想当有两个单独的字典列表要合并时,这会更好。如何在列表中合并不同的键?我真的很感谢你在这方面的帮助

问题是字典不能有重复的键。如果在声明后添加
print d1
,您将看到重复的密钥消失了。您需要为
d1

1使用单独的词典或其他数据结构。如果
d1
列表,则可以。但是如果您的
d1
dict
dict
不能有重复的键。这是
dict
的基本比例。因此,您的
d1
是非法的,只会有一个
被驱逐
/
saw

2假设d1是一个列表,代码为:

for dicts in d1:
   for key, value in dicts.items():
      new_dict.setdefault(key,[]).extend(value)

由于键在
dict
-
d1
中是唯一的,因此只能从一个
退出的
/
saw
条目开始。。。如果同一“密钥”有多个条目,则需要将数据保存在除dict之外的其他内容中。。。(在声明后尝试打印(d1)
——您已经丢失了信息)