【问题标题】:Python dictionary switching keys around in dictionary [duplicate]Python字典在字典中切换键[重复]
【发布时间】:2014-04-11 17:31:07
【问题描述】:

所以我在 python 中有一个字典,其中我有一个键的数字,并附加了一个值。

myDictionary = {"0" :0, "1":0, "2":0, "3":0, "4":0, "5":0, "6":12, "7":0,"8":0,"9":0,"10":0,"11":0, "12":0,"13":12}

我运行了一个 doctest,上面写着:

>>> myDictionary = {"0" :0, "1":0, "2":0, "3":0, "4":0, "5":0, "6":12, "7":0,"8":0,"9":0,"10":0,"11":0, "12":0,"13":12}
>>> new_Val = 0
>>> method0 = WordClass (new_Val, myDictionary)
True

我正在做一些调试广告,打印出我的字典,以确保我通过字典中的正确值。当我打印出来时,它看起来像这样:

{'11': 4, '10': 4, '13': 0, '12': 4, '1': 4, '0': 4, '3': 4, '2': 4, '5': 4, '4': 4, '7': 4, '6': 0, '9': 4, '8': 4}

它们都出问题了。 python在存储内存或其他东西时是否默认这样做?如果是这样,是否有一些我可以查看的文档?

谢谢

【问题讨论】:

  • Dictionaries 根据定义是无序的。为什么不使用列表?

标签: python dictionary


【解决方案1】:

python 中的字典是无序的。你真的需要订单吗?如果您对此进行详细说明,人们可能会为您提供更多帮助。如果您确实需要订购,可以尝试使用 https://docs.python.org/2/library/collections.html#collections.OrderedDict 之类的东西。

【讨论】:

  • 嗯,他们必须被命令遍历它们,对吧?我希望能够通过 for 循环获得每个人的价值
  • @LearnLanguages96,您不能直接遍历dict。您可以做的是生成一个键列表,然后循环遍历并依次调用这些值。这就是当你执行for thing in a_dict: 时隐含地发生的事情,每个thing 将是字典a_dict 的一个键(以任意顺序弹出)
  • 为什么需要订购?您可以使用 for key in dictfor item in dict.items() 而不期望以任何特定顺序或什至两次相同的顺序返回它们。
  • @LarryLustig 我会试试的
【解决方案2】:

Python 字典键是无序的。如果您希望它们按特定顺序返回,则需要对它们进行排序。如果您希望字典记住添加键的顺序,请使用 OrderedDict() from collections

更多信息:https://docs.python.org/3.3/library/collections.html#collections.OrderedDict

【讨论】:

    猜你喜欢
    • 2012-01-08
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 2018-03-27
    • 2019-04-15
    相关资源
    最近更新 更多