Python 字典中的插入顺序和重复键
我正在使用python 3.7。 我有一本这样的字典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文档中删除: 字典上
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内置类的名称,所以不应该将其用作变量的名称。