我正在尝试从一些教程中学习Python.这是我遇到的一个简单的例子,让我感到困惑.
>>> d={"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"}
>>> d
{'pwd': 'secret', 'database': 'master', 'uid': 'sa', 'server': 'mpilgrim'}
>>> d.keys()
['pwd', 'database', 'uid', 'server']
>>> d.values()
['secret', 'master', 'sa', 'mpilgrim']
Run Code Online (Sandbox Code Playgroud)
正如您在我定义字典的第一行中所看到的,该项是字典"pwd":"secret"中的最后一个元素.但是,当我输出字典时,它成为第一个元素.字典的其余部分已经重新排序.
我可以知道为什么会这样吗?
如果我使用dict.keys()从字典中提取密钥并按照我认为的顺序迭代它,那会导致不匹配问题吗?
我可以知道为什么会这样吗?
这是因为dicts的内部组织方式.
简而言之,这通过散列表来工作,该散列表根据它们的hash()值将密钥放入桶中.
如果我使用dict.keys()从字典中提取密钥并按照我认为的顺序迭代它,那会导致不匹配问题吗?
取决于你如何做.
k = list(d.keys())
k.sort()
for i in k: print i, d[i]
Run Code Online (Sandbox Code Playgroud)
应该按照你希望它的工作方式运作.