在dict python中安排键

时间:2016-05-13 12:28:44

标签: python dictionary key

是否有一种简单的方法可以在列表键之间创建层次结构,以便稍后按顺序选择它们并将它们与布尔值进行比较?

我的蠢事。看起来像这样:

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"]

谢谢

3 个答案:

答案 0 :(得分:1)

随着哈希映射的更新,python字典对象的键没有排序,顺序也不一致。

您有几个选项......一个是单独list()个密钥并根据需要订购,或者您可以使用OrderedDict

https://docs.python.org/2/library/collections.html#collections.OrderedDict

答案 1 :(得分:1)

您无法在dict中重新排列/排序条目,因为他们没有订单。但是,您可以在迭代它们时对它们进行排序,例如在打印或将它们转换为列表时。

for key in sorted(names):
    print names[key]

答案 2 :(得分:0)

来自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实现而异,并且取决于 字典的插入和删除历史。如果迭代键,值和项视图而没有对字典的干预修改,则项的顺序将直接对应。

我会尝试使用包含顺序,因为它似乎没有删除值。