在字典中排列键 python
arranging keys in dict python
有没有一种简单的方法可以在列表键之间创建层次结构,以便我以后可以按顺序 select 它们并将它们与布尔值进行比较?
我的字典。看起来像这样:
names = {
"21": "Mayer",
"31": "Lille Mayer",
"11": "Par 1",
"22": "Par 2",
"33": "Par 3",
"44": "Par 4",
"55": "Par 5",
"66": "Par 6"}
我想按这种模式排列键:
h = names["21"] > names["31"] > names["66"] > names["55"] > names["44"] > names["33"] > names["22"] > names["11"]
谢谢
python 字典对象的键未排序,并且随着哈希映射更新,顺序不一致。
您有几个选择...一个是制作一个单独的 list()
键并根据需要排序,或者您可以使用 OrderedDict
:
https://docs.python.org/2/library/collections.html#collections.OrderedDict
您不能 rearrange/sort 字典中的条目,因为 它们没有顺序 。但是,您可以在遍历它们时对它们进行排序,例如在打印或将它们转换为列表时。
for key in sorted(names):
print names[key]
来自python的docs:
iter(dictview)
Return an iterator over the keys, values or items (represented as tuples
字典中的 (key, value))。
Keys and values are iterated over in an arbitrary order which is
非随机,因 Python 实施而异,并取决于
字典的插入和删除历史。如果在不对字典进行干预修改的情况下迭代键、值和项目视图,则项目的顺序将直接对应。
我会尝试包含的顺序,因为您似乎没有删除值。
有没有一种简单的方法可以在列表键之间创建层次结构,以便我以后可以按顺序 select 它们并将它们与布尔值进行比较?
我的字典。看起来像这样:
names = {
"21": "Mayer",
"31": "Lille Mayer",
"11": "Par 1",
"22": "Par 2",
"33": "Par 3",
"44": "Par 4",
"55": "Par 5",
"66": "Par 6"}
我想按这种模式排列键:
h = names["21"] > names["31"] > names["66"] > names["55"] > names["44"] > names["33"] > names["22"] > names["11"]
谢谢
python 字典对象的键未排序,并且随着哈希映射更新,顺序不一致。
您有几个选择...一个是制作一个单独的 list()
键并根据需要排序,或者您可以使用 OrderedDict
:
https://docs.python.org/2/library/collections.html#collections.OrderedDict
您不能 rearrange/sort 字典中的条目,因为 它们没有顺序 。但是,您可以在遍历它们时对它们进行排序,例如在打印或将它们转换为列表时。
for key in sorted(names):
print names[key]
来自python的docs:
iter(dictview)
Return an iterator over the keys, values or items (represented as tuples
字典中的 (key, value))。
Keys and values are iterated over in an arbitrary order which is
非随机,因 Python 实施而异,并取决于 字典的插入和删除历史。如果在不对字典进行干预修改的情况下迭代键、值和项目视图,则项目的顺序将直接对应。
我会尝试包含的顺序,因为您似乎没有删除值。