【问题标题】:Corresponding Dictionary Keys and Values Outputs [duplicate]对应的字典键和值输出[重复]
【发布时间】:2017-01-27 10:39:25
【问题描述】:

由于字典没有排序,所以输出也没有排序:

>>> d = dict(b = 1, a = 2, z = 3)
>>> d.keys()
['a', 'z', 'b']
>>> d.values()
[2, 3, 1]

但是上面的keysvalues 输出总是按相应的顺序排列吗?

【问题讨论】:

  • 注意,(迂腐点)字典在 CPython 3.6 中排序stackoverflow.com/questions/39980323/…
  • @Chris_Rands 我读到了,似乎不清楚是否应该依赖它。
  • @ayhan 这里的文字和示例比其他问题更清晰。
  • 我不同意。标题本身就说明了问题。如果您认为通过更清晰的示例可以改进它,您可以随时对其进行编辑,但我认为这不是一个足够好的理由来关闭该规范问题作为这个问题的副本。
  • @ayhan 没有必要成为其中之一而不是另一个。两者都可以。

标签: python dictionary


【解决方案1】:

答案是肯定的。

来自python 2 documentation

如果调用 items()、keys()、values()、iteritems()、iterkeys() 和 itervalues() 时没有对字典进行干预修改,则列表将直接对应。这允许使用 zip() 创建(值,键)对:pairs = zip(d.values(), d.keys())。相同的关系适用于 iterkeys() 和 itervalues() 方法:pairs = zip(d.itervalues(), d.iterkeys()) 为对提供相同的值。创建相同列表的另一种方法是pairs = [(v, k) for (k, v) in d.iteritems()]。

来自python 3 documentation

如果键、值和项目视图被迭代而没有对字典进行干预修改,项目的顺序将直接对应

【讨论】:

    猜你喜欢
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    • 2018-10-10
    • 2016-11-06
    • 2020-10-20
    • 1970-01-01
    • 2015-05-17
    • 1970-01-01
    相关资源
    最近更新 更多