为何我的Python代码与教材中set变量的输出顺序不同?
字典转集合后输出顺序和教材不一致,是哪里错了?
教材中的代码及输出:
dict1 = {'satu': 100, 'dua': 100, 'tiga': 100, 'empat':200} set1 = set(dict1) set1 # 教材显示结果: {'tiga', 'dua', 'empat', 'satu'}
我运行相同代码的输出:
dict1 = {'satu': 100, 'dua': 100, 'tiga': 100, 'empat':200} set1 = set(dict1) set1 # 我的运行结果: {'satu', 'dua', 'empat', 'tiga'}
请问我是不是漏了什么知识点?
你完全没遗漏任何要点,这是Python集合的固有特性:
- 集合(
set)是无序的数据结构,它不会保留元素的插入顺序,也不保证任何固定的输出顺序。 - 把字典转为集合时,实际上是将字典的所有键(keys)提取出来存入集合,但这些键在集合中的排列顺序是随机的——不同Python版本、不同运行环境甚至同一段代码多次运行,都可能得到不同的顺序。
- 只要集合包含了所有字典的键,不管顺序如何,这个结果就是正确的,无需纠结顺序问题。
内容的提问来源于stack exchange,提问作者Raza Freza
相关产品推荐
相关产品推荐

