Python 字典中的插入顺序和重复键

Python 字典中的插入顺序和重复键,python,Python,我正在使用python 3.7。 我有一本这样的字典 dict = { 'a' :2 , 'a' :1 , 'b':3 , 'c':4} print(dict) O/P ={'a' : 1 , 'b' :2 , 'c':3 } 现在在python 3.7中,字典必须保持插入顺序。因此预期的o/p将是{'a':2,'b':3,'c':4},但是('a',2)将从字典中而不是('a',1')中删除。为什么会发生这种情况?python中是否有删除重复键的规则???从python文档中删除: 字典上

我正在使用python 3.7。 我有一本这样的字典

dict = { 'a' :2 , 'a' :1 , 'b':3 , 'c':4}
print(dict) 
O/P ={'a' : 1 , 'b' :2 , 'c':3 }

现在在python 3.7中,字典必须保持插入顺序。因此预期的o/p将是{'a':2,'b':3,'c':4},但是('a',2)将从字典中而不是('a',1')中删除。为什么会发生这种情况?python中是否有删除重复键的规则???

从python文档中删除:

字典上的主要操作是使用某个键存储一个值,并提取给定键的值。还可以使用del删除key:value对。如果使用已在使用的键进行存储,则会忘记与该键关联的旧值。使用不存在的键提取值是错误的


请参阅Python文档中的:

字典上的主要操作是使用某个键存储一个值,并提取给定键的值。还可以使用del删除key:value对。如果使用已在使用的键进行存储,则会忘记与该键关联的旧值。使用不存在的键提取值是错误的


请参阅:

维护插入顺序与不同的键有关:

当接收到同一密钥的多个值时,最后一个提供的值将获胜:

>>> dct = {'a': 3, 'a': 1, 'b': 2}
>>> print(dct)
{'a': 1, 'b': 2}
这类似于以下场景:

>>> dct = {}
>>> dct['a'] = 3
>>> dct['a'] = 1
>>> dct['b'] = 2

由于“插入顺序”,您是否希望dct['a']现在为
3
?当然不是

维护插入顺序涉及不同的键:

当接收到同一密钥的多个值时,最后一个提供的值将获胜:

>>> dct = {'a': 3, 'a': 1, 'b': 2}
>>> print(dct)
{'a': 1, 'b': 2}
这类似于以下场景:

>>> dct = {}
>>> dct['a'] = 3
>>> dct['a'] = 1
>>> dct['b'] = 2

由于“插入顺序”,您是否希望dct['a']现在为
3
?当然不是

分配给键的值可以是任何东西,甚至可以是重复的,因为它只是一个值。但是,键类似于变量名。与许多编程语言一样,如果在同一范围或方法中再次使用变量名,则第一个变量及其值将被第二个变量覆盖,因为它是最新的

在这种情况下,如果您愿意,可能更适合将不同的键(将键视为标识符)分配给相同的值。像这样

dict = { 2: 'a', 1: 'a', 3:'b', 4:'c'} 
print(dict)
O/P = {1: 'a', 2: 'a', 3: 'b', 4: 'c'}  

分配给键的值可以是任何东西,甚至可以是重复的,因为它只是一个值。但是,键类似于变量名。与许多编程语言一样,如果在同一范围或方法中再次使用变量名,则第一个变量及其值将被第二个变量覆盖,因为它是最新的

在这种情况下,如果您愿意,可能更适合将不同的键(将键视为标识符)分配给相同的值。像这样

dict = { 2: 'a', 1: 'a', 3:'b', 4:'c'} 
print(dict)
O/P = {1: 'a', 2: 'a', 3: 'b', 4: 'c'}  

泰先生,我不知道旧值会被删除。因为dict是python内置类的名称,所以不应该将其用作变量的名称。泰先生,我不知道旧值会被删除。因为dict是python内置类的名称,所以不应该将其用作变量的名称。