【问题标题】:Assigning python dictionary literals: are the semantics guaranteed? [duplicate]分配python字典文字:语义有保证吗? [复制]
【发布时间】:2018-04-15 22:56:56
【问题描述】:

简单的问题:

Python 2.6.6 (r266:84292, Aug 9 2016, 06:11:56)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> d = {'foo':1,'foo':2}
>>> print d
{'foo': 2}
>>> d = {'foo':2,'foo':1}
>>> print d
{'foo': 1}

因此,如果我将带有重复键的字典文字分配给变量,那么它似乎是使用的第二个键/对,至少对于这个特定的 python 版本。

这种行为是否得到保证?

【问题讨论】:

    标签: python dictionary


    【解决方案1】:

    来自Dictionary displays documentation

    如果给出逗号分隔的键/数据对序列,从左到右评估它们以定义字典的条目:每个键对象都用作字典中的键存储相应的数据。 这意味着您可以在键/数据列表中多次指定同一个键,并且该键的最终字典值将是最后一个给定的值。

    (我的粗体强调)。

    所以是的,这是有保证的。所有 Python 实现都必须遵守这一点,偏离上述规范将是一个错误。

    较旧的 Python 版本文档并不总是包含最后一句话,但评估的顺序一直是明确的。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-13
    • 2013-01-23
    • 2015-09-28
    相关资源
    最近更新 更多