是否有一种简单的方法可以在列表键之间创建层次结构,以便稍后按顺序选择它们并将它们与布尔值进行比较?
我的蠢事。看起来像这样:
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"]
谢谢
答案 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
字典中的Keys and values are iterated over in an arbitrary order which is
非随机,因Python实现而异,并且取决于 字典的插入和删除历史。如果迭代键,值和项视图而没有对字典的干预修改,则项的顺序将直接对应。
我会尝试使用包含顺序,因为它似乎没有删除值。