问:如果字典没有顺序,则假定使用for循环时,键或其值返回或打印的顺序将是随机的。但是,在视频中,肯尼斯(Kenneth)的顺序似乎与在字典中输入键/值对的顺序相同。他还提到了在字典更改之前顺序保持不变的一些内容,但是我仍然不太明白他的意思。
答:一旦Python按照其术语组织了密钥,除非您修改了密钥(例如添加另一个密钥),否则不会重新定义顺序。因此,当肯尼斯(Kenneth)在for循环上调用它时,该字典是由Python的哈希算法在内部组织的。您可以使用简单的代码示例进行尝试。
a = { 'a' : 1 , 'b' : 2 , 'c' : 3 }
b = { 'b' : 2 , 'c' : 3 , 'a' : 1 }
c = { 'c' : 3 , 'a' : 1 , 'b' : 2 }
print (a ,b ,c )#({'a':1,'c':3,'b':2},{'a':1, 'c':3,'b':2},{'a':1,'c':3,'b':2})
print (a , b , c )
#({'a':1,'c':3,'b':2},{'a':1,'c':3,'b':2}, {'a':1,'c':3,'b':2})
因此,您可以看到Python具有组织密钥的一致方式,但是您无法预测它。
我不明白当您说字典键经过for循环时是按顺序排列的。Python会按原样组织并保持它们不变,不会乱码。但是一旦修改了密钥,您将不会知道密钥的组织方式。