压缩两个列表,其中一个包含相似的元素

时间:2019-01-19 21:33:21

标签: python python-3.x

这可能是一个幼稚的问题,我有两个列表,分别是list1和list2。

list1 =[[('a', 'b'), ('c', 'd')], [('e', 'f'), ('g', 'h')]]
list2 =['aa', 'aa']

当我这样做

dict(zip(list2, list1)) 

我得到以下

{'aa': [('e', 'f'), ('g', 'h')]}

我想要的输出是

{{'aa': [('a', 'b'), ('c', 'd')], 'aa': [('e', 'f'), ('g', 'h')]}

当我将list2更改为:

list2 = ['aa1', 'aa2']
dict(zip(list2, list1))

给予

{'aa1': [('a', 'b'), ('c', 'd')], 'aa2': [('e', 'f'), ('g', 'h')]}

为什么在第一种情况下我没有得到想要的输出?你能帮我这个忙吗?预先感谢。

1 个答案:

答案 0 :(得分:0)

默认情况下,Python中的字典不能有重复的键,另一方面,我们可以有多个值。 在第一条语句中,python将为键aa添加值:

[('a', 'b'), ('c', 'd')]

然后它将使用:覆盖其值。

 [('e', 'f'), ('g', 'h')]

要使用重复的键创建字典,请查看此make dictionary with duplicate keys in python