为什么python在不同的设备上读取dict的方式不同,为什么不自上而下?
今天,我偶然发现了python的以下行为,我无法解释。我想运行以下代码,并认为python从上到下打印bundeslaender的值为什么python在不同的设备上读取dict的方式不同,为什么不自上而下?,python,json,dictionary,Python,Json,Dictionary,今天,我偶然发现了python的以下行为,我无法解释。我想运行以下代码,并认为python从上到下打印bundeslaender的值 bundeslaender={ “巴登-沃尔滕堡”, “拜仁”, “柏林”, “勃兰登堡”, “不来梅”, “汉堡”, “黑森”, “Mecklenburg-Vorpomern”, “尼德萨克森”, “北莱茵威斯特法伦”, “莱茵普法尔茨”, “萨尔兰”, “萨克森”, “Sachsen Anhalt”, “石勒苏益格-荷尔斯泰因”, “图林根” } 对于位于邦德
bundeslaender={
“巴登-沃尔滕堡”,
“拜仁”,
“柏林”,
“勃兰登堡”,
“不来梅”,
“汉堡”,
“黑森”,
“Mecklenburg-Vorpomern”,
“尼德萨克森”,
“北莱茵威斯特法伦”,
“莱茵普法尔茨”,
“萨尔兰”,
“萨克森”,
“Sachsen Anhalt”,
“石勒苏益格-荷尔斯泰因”,
“图林根”
}
对于位于邦德斯兰德的邦德斯兰:
打印(f'{bundesland}')
但我得到了以下输出:
石勒苏益格-荷尔斯泰因
莱茵兰-普法尔茨州
萨克森·安哈特
汉堡
勃兰登堡
萨尔兰
拜仁
柏林
巴登-沃尔滕堡
不来梅
北莱茵威斯特法伦酒店
黑森
尼德萨克森
图林根
萨克森
梅克伦堡前波莫瑞州
我认为这是因为我在Collab中使用了一个>upiter笔记本,并在Windows终端中运行了相同的代码。在那里,我得到了以下输出:
Thüringen
萨克森·安哈特
勃兰登堡
不来梅
拜仁
巴登-沃尔滕堡
柏林
萨尔兰
石勒苏益格-荷尔斯泰因州
黑森
汉堡
尼德萨克森
北莱茵威斯特法伦酒店
莱茵兰-普法尔茨州
萨克森
梅克伦堡前波莫瑞州
在Windows CMD中,我再次获得了不同的输出
尼德萨克森
梅克伦堡前波莫瑞州
黑森
不来梅
莱茵兰-普法尔茨州
汉堡
柏林
萨克森·安哈特
图林根
萨克森
石勒苏益格-荷尔斯泰因州
勃兰登堡
巴登-沃尔滕堡
萨尔兰
北莱茵威斯特法伦酒店
拜仁
有人能给我解释一下为什么每个程序的输出不同吗?这些不是
dict
onaries,而是set
s。这些是独特元素的无序集合。迭代它们的顺序取决于它们的散列
,对于解释器的每次启动,散列本身几乎是随机的(取决于解释器的大小)
要获得排序,请使用列表
,因此将{}
替换为[]
:
bundeslaender = [
'Baden-Württemberg',
'Bayern',
'Berlin ',
'Brandenburg',
'Bremen ',
'Hamburg' ,
'Hessen',
'Mecklenburg-Vorpommern',
'Niedersachsen',
'Nordrhein-Westfalen',
'Rheinland-Pfalz',
'Saarland',
'Sachsen',
'Sachsen-Anhalt',
'Schleswig-Holstein',
'Thüringen'
]
for bundesland in bundeslaender:
print(f'{bundesland}')