字典更新时是否会随机添加条目?附相关示例程序说明
关于字典更新时条目顺序的问题
首先得看你使用的Python版本,这是关键:
- 在Python 3.7及以后的版本中,字典会严格保留插入顺序,所以用一个字典更新另一个时,新条目的顺序会和你用来更新的字典里的条目顺序完全一致,绝对不会随机乱序。
- 而在Python 3.6及更早的版本中,字典的插入顺序是不被官方保证的,看起来像是“随机”排列,但其实是由哈希表的底层实现机制决定的,并非真正的随机。
举个实际代码例子帮你理解:
original_dict = {"name": "Alice", "age": 25} new_entries = {"city": "New York", "job": "Engineer"} original_dict.update(new_entries)
在Python 3.7+环境里,original_dict最终会是{"name": "Alice", "age": 25, "city": "New York", "job": "Engineer"},完全遵循new_entries里的条目顺序;但在3.6及以前的版本中,city和job的位置可能会和原字典的键混在一起,看起来没有规律。
另外补充一点:如果用来更新的字典里有和原字典重复的键,原字典里的对应值会被覆盖,但原有键的位置不会改变,只会更新值而已。
内容的提问来源于stack exchange,提问作者user403165
相关产品推荐
相关产品推荐

