【问题标题】:Printing contents of dictionary in random order以随机顺序打印字典内容
【发布时间】:2013-05-16 11:09:31
【问题描述】:

我对 Python 还很陌生。事实上,今天是我接触 Python 的第一天。我正在按照教程阅读字典。

但我不知道字典内容的显示顺序是什么。

下面是我的代码:

dir = {'Z':1,'Y':3,'X':5,'V':7,'U':9,'T':2,'S':4,'R':6,'Q':8,'P':10};
print dir;

以下是输出:

{'Q': 8, 'P': 10, 'S': 4, 'R': 6, 'U': 9, 'T': 2, 'V': 7, 'Y': 3,'X':5,'Z':1}

谁能解释我如何得到这个输出,而不是原始序列中的列表。

P.S: 抱歉问了一个蹩脚的问题:(

【问题讨论】:

    标签: python linux dictionary output


    【解决方案1】:

    来自Python Docs(他们将成为您使用 Python 时的朋友)

    最好将字典视为一组无序的键:值 对,要求密钥是唯一的(在一个 字典)。

    这意味着它们以没有固定的顺序存储,因此以没有固定的顺序打印出来! 由于字典很可能是使用哈希表实现的,因此它们没有遵循“顺序”。

    如果您想要一个有序字典,collections.OrderedDict() 可能有用。

    【讨论】:

    • 键:值对是否存储在连续的内存位置?甚至它们也可以是无序的?
    • 我不认为它们存储在连续的位置,因为它们是作为哈希表实现的。
    • 谢谢你的解释:)
    【解决方案2】:

    如果您阅读了有关字典的 python 文档http://docs.python.org/2/tutorial/datastructures.html#dictionaries

    你会发现这很正常。如果你希望它被排序,你必须做一些排序操作,否则它是一个任意的顺序。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-02
      • 1970-01-01
      • 1970-01-01
      • 2011-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多