我正在使用 Python,我想加入这两个字典:
dic1 = {1:"hola", 2:"adios", 3:"hasta luego"}
dic2 = {4:"¿Cómo estás?", 5:"¿Te encuentras bien?"}
我该怎么做?
现在我已经尝试过这个,将所有内容加入dic3
,但在我看来,我做了很多转换并且不优雅:
dic1 = {1:"hola", 2:"adios", 3:"hasta luego"}
dic2 = {4:"¿Cómo estás?", 5:"¿Te encuentras bien?"}
#Uso el método items y list para crearme una lista
tuple_dic1 = list(dic1.items())
tuple_dic2 = list(dic2.items())
#los uno como lista y devuelvo un diccionario unido
dic3 = dict(tuple_dic1 + tuple_dic2)
另一方面,字典不能有重复的键,所以如果有重复的键,Python 会保留什么键呢?它是如何工作的?
例如,在这两种情况下,键1
重复但具有不同的值:
dic1 = {1:"hola", 2:"adios", 3:"hasta luego"}
dic2 = {4:"¿Cómo estás?", 5:"¿Te encuentras bien?", 1:"Buenos días"}
Python => 3.9
如果 Python 版本为 3.9 或更高版本,则有 operator
|
和operator 分别|=
定义为merge和update运算符。因此,要加入字典,我们将执行以下代码:离开:
如果我们想更新现有的字典,我们使用前面提到的操作符
|=
:离开:
尽管输出相同,但在第一个输出中我们必须创建第三个字典,而在第二个输出中,我们更新了
dic1
.这可以在 Python 3.9 中的新功能摘要形式的新 Python 版本的文档中找到。在PEP584文档中有更详细的信息
Python 3.9 之前的版本
这种方法代表了 Python 易用性的一大进步,并取代了以前的方法,这些方法很难看,或者没有多少语言经验的人不容易理解。
Python 3.9 之前的字典联合
在 Python 3.9 之前更新字典
如果我们使用相同的密钥会发生什么?
在这两种方式中,字典中的最后一个键将始终保留。Python 像这样工作是合乎逻辑的,因为第二个字典将是第一个字典的更新,因此,在重复键的情况下,最后一个字典总是保留。例子:
离开:
我再说一遍,这将在 Python 3.9 中发生,就像在以前的版本中一样