dict_mark = {'Wang': 'C', 'Li': 'B', 'Ma': 'A'}
s = ''
for c in dict_mark.values():
s += c
print(s)
Run Code Online (Sandbox Code Playgroud)
字典是无序的,那么为什么dict_mark.values()总是返回这个值序列呢'C' 'B' 'A'?
为什么不'B' 'A' 'C'或者'A' 'B' 'C'?
无序并不意味着不具有确定性。
\n\n来自 python 2.x 文档:
\n\n\n\n\n\n\n如果调用 items()、keys()、values()、iteritems()、iterkeys() 和 itervalues() 且不对字典进行任何修改,则列表将直接对应。
\n
\n\n\n键和值以任意顺序迭代,该顺序是非随机的,因 Python 实现而异,并且取决于字典\xe2\x80\x99s 的插入和删除历史记录。
\n
因此,返回的序列始终相同,直到您修改字典。您只是无法对其中排序的对象做出假设。
\n\n看看这个问题及其答案,其中讨论了为什么(以及如何)在 python 3.6+ 中字典实际上是排序的。
\n| 归档时间: |
|
| 查看次数: |
3825 次 |
| 最近记录: |