5
A
回答
6
>>> d = {'a' : 'b', 'a' : 'c'}
>>> d
{'a': 'c'}
不,它只是使用预先存在的密钥初始化一个字典,它只是覆盖现有密钥的当前值。
>>> dis.dis("d = {'a' : 'b', 'a' : 'c'}")
1 0 BUILD_MAP 2
3 LOAD_CONST 0 ('b')
6 LOAD_CONST 1 ('a')
9 STORE_MAP
10 LOAD_CONST 2 ('c')
13 LOAD_CONST 1 ('a')
16 STORE_MAP
17 STORE_NAME 0 (d)
20 LOAD_CONST 3 (None)
23 RETURN_VALUE
>>> dis.dis("d={};d['a']='b';d['a']='c'")
1 0 BUILD_MAP 0
3 STORE_NAME 0 (d)
6 LOAD_CONST 0 ('b')
9 LOAD_NAME 0 (d)
12 LOAD_CONST 1 ('a')
15 STORE_SUBSCR
16 LOAD_CONST 2 ('c')
19 LOAD_NAME 0 (d)
22 LOAD_CONST 1 ('a')
25 STORE_SUBSCR
26 LOAD_CONST 3 (None)
29 RETURN_VALUE
正如你所看到的,初始化的两种方式是有几分相像:第一键值存储第一则第二。
+3
这正是他们所要求的。他们想知道**为什么它不是错误**。 –
0
它没有。它只是覆盖密钥。
>>> d = {'a' : 'b', 'a' : 'c'}
>>> d
{'a': 'c'}
覆盖密钥是错误的吗?它不应该。否则,当您尝试更新字典中的内容时,会出现一百万个错误。之所以如此,我认为没有错误是这样(英文解释代码):
d is a dictionary. there is a key and a value. ('a' and 'b') Pair them up and enter them, while saving them. New entry ('a' and 'c') key 'a' already exists; update value.
相关问题
- 1. 为什么`dict_display`允许重复键?
- 2. 为什么@OneToOne允许重复关联?
- 3. 为什么我的HashMap允许重复键?
- 4. 相当于一个允许重复键的排序字典
- 5. json.loads允许重复键在字典中,覆盖第一个值
- 6. 为什么允许密码中的重复字符不安全?
- 7. Python识别重复的字典键
- 8. 什么mysql特权允许创建模式,当你不是根?
- 9. 为什么这个Python的字典列表只有字典的关键字?
- 10. Python删除带有重复字段的字典项目
- 11. 复合键是否允许重复
- 12. 为什么Windows允许创建私有堆?
- 13. python在字典中检查重复键
- 14. 为什么默认参数不允许在带重复参数的Scala部分?
- 15. 为什么java不允许使用带super关键字的类型参数?
- 16. Python字典键/带前缀的值 - 前缀是什么?
- 17. Python |如何创建复杂的字典
- 18. 如何在Python中创建一个随机字母作为没有重复键的字典?
- 19. 为什么你只有AlphaNumeric允许锚名称?
- 20. has_and_belongs_to_many允许没有重复
- 21. 如何创建键,值字典在python
- 22. Python从字典键中创建新列
- 23. 从Python字典键创建变量
- 24. 为什么允许空的wchar_t文字?
- 25. 为什么C#允许重写异步?
- 26. Python复杂字典键
- 27. 为我的字典创建唯一键
- 28. 为什么add_post_meta创建重复条目
- 29. 创建Python字典
- 30. BasicNameValuePair是否允许重复键?
你可能有兴趣在阅读[关于这个确切问题Python的错误报告(https://bugs.python.org/issue16385)。解决方法:拒绝。 –
为什么要这样呢?这些键仍然是唯一的,值就像预期的那样写完。没有重复的键。我相信这是一个重复的问题,我现在找不到重复的权利。 –
好问题 - 我从来不知道。有趣的理由:特里似乎认为有用例可以证明有这种行为。 – GreenAsJade