Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么python在不同的设备上读取dict的方式不同,为什么不自上而下?_Python_Json_Dictionary - Fatal编程技术网

为什么python在不同的设备上读取dict的方式不同,为什么不自上而下?

为什么python在不同的设备上读取dict的方式不同,为什么不自上而下?,python,json,dictionary,Python,Json,Dictionary,今天,我偶然发现了python的以下行为,我无法解释。我想运行以下代码,并认为python从上到下打印bundeslaender的值 bundeslaender={ “巴登-沃尔滕堡”, “拜仁”, “柏林”, “勃兰登堡”, “不来梅”, “汉堡”, “黑森”, “Mecklenburg-Vorpomern”, “尼德萨克森”, “北莱茵威斯特法伦”, “莱茵普法尔茨”, “萨尔兰”, “萨克森”, “Sachsen Anhalt”, “石勒苏益格-荷尔斯泰因”, “图林根” } 对于位于邦德

今天,我偶然发现了python的以下行为,我无法解释。我想运行以下代码,并认为python从上到下打印bundeslaender的值

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}')