首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将dict转换为OrderedDict

将dict转换为OrderedDict
EN

Stack Overflow用户
提问于 2013-03-30 05:35:00
回答 3查看 180.1K关注 0票数 149

我在使用collections.OrderedDict类时遇到了一些问题。我在Raspbian上使用Python 2.7,Raspberry Pi的Debian发行版。我正在试着打印两本字典,以便在文本冒险时进行比较(并排)。为了准确地比较,顺序是必不可少的。不管我怎么尝试,字典都是以它们通常的无序方式印刷的。

以下是我在RPi上执行此操作时得到的结果:

代码语言:javascript
复制
import collections

ship = {"NAME": "Albatross",
         "HP":50,
         "BLASTERS":13,
         "THRUSTERS":18,
         "PRICE":250}

ship = collections.OrderedDict(ship)

print ship
# OrderedDict([('PRICE', 250), ('HP', 50), ('NAME', 'Albatross'), ('BLASTERS', 13), ('THRUSTERS', 18)])

显然有一些不正确的地方,因为它打印函数调用,并将键和值组放入嵌套列表中……

这是我在PC上运行类似程序得到的结果:

代码语言:javascript
复制
import collections

Joe = {"Age": 28, "Race": "Latino", "Job": "Nurse"}
Bob = {"Age": 25, "Race": "White", "Job": "Mechanic", "Random": "stuff"}

#Just for clarity:
Joe = collections.OrderedDict(Joe)
Bob = collections.OrderedDict(Bob)

print Joe
# OrderedDict([('Age', 28), ('Race', 'Latino'), ('Job', 'Nurse')])
print Bob
# OrderedDict([('Age', 25), ('Race', 'White'), ('Job', 'Mechanic'), ('Random', 'stuff')])

这一次,它是有序的,但它不应该打印其他东西,对吗?(将其放入列表并显示函数调用。)

我在哪里犯了错误?它不应该与Python的pi版本有任何关系,因为它只是Linux版本。

EN

回答 3

Stack Overflow用户

发布于 2017-09-27 20:33:16

如果你不能编辑定义你的字典的这部分代码,你仍然可以在任何时候以任何你想要的方式对它进行排序,如下所示:

代码语言:javascript
复制
from collections import OrderedDict

order_of_keys = ["key1", "key2", "key3", "key4", "key5"]
list_of_tuples = [(key, your_dict[key]) for key in order_of_keys]
your_dict = OrderedDict(list_of_tuples)
票数 39
EN

Stack Overflow用户

发布于 2021-01-14 01:56:11

您可以在一行中从旧字典中创建有序字典:

代码语言:javascript
复制
from collections import OrderedDict
ordered_dict = OrderedDict(sorted(ship.items())

默认的排序键是按字典键排序的,所以新的ordered_dict是按旧字典的键排序的。

票数 3
EN

Stack Overflow用户

发布于 2019-09-05 12:40:18

使用dict.items();它可以像下面这样简单:

代码语言:javascript
复制
ship = collections.OrderedDict(ship.items())
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15711755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档