gpt4 book ai didi

python - 为什么 Go 的 map 迭代顺序在打印时会发生变化?

转载 作者:IT王子 更新时间:2023-10-29 00:48:28 25 4
gpt4 key购买 nike

package main

import "fmt"

func main(){
sample := map[string]string{
"key1":"value1",
"key2":"value2",
"key3":"value3",
}
for i := 0;i<3;i++{
fmt.Println(sample)
}
}

上面的go代码只是打印了3次map[string]string。

我希望它是一个固定的输出,但它显示如下:

map[key3:value3 key2:value2 key1:value1]
map[key1:value1 key3:value3 key2:value2]
map[key2:value2 key1:value1 key3:value3]

因人而异!

在 python 中:

#!/bin/env python
#encoding=utf8

sample = {
"key1":"value1",
"key2":"value2",
"key3":"value3",
}
for i in range(3):
print sample

输出:

{'key3': 'value3', 'key2': 'value2', 'key1': 'value1'}
{'key3': 'value3', 'key2': 'value2', 'key1': 'value1'}
{'key3': 'value3', 'key2': 'value2', 'key1': 'value1'}`

最佳答案

您不能依赖获得 key 的顺序。语言规范 says “ map 是一组无序的元素”,后来“未指定 map 的迭代顺序,并且不保证从一次迭代到下一次迭代是相同的。”

关于python - 为什么 Go 的 map 迭代顺序在打印时会发生变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13744996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com