有人可以帮我解决python中的dict吗?
我用一个print语句制作了一个dict,如下所示:
role = {
'user': 1,
'moderator': 2,
'admin': 3
}
for r in role:
print role[r]
我认为结果将是
1
2
3
但实际打印出
2
3
1
谁能告诉我为什么?
答案 0 :(得分:0)
...没有维护键的排序顺序,并且.keys()和.items()的遍历将以某种任意混乱的顺序输出字典的内容。
因此,当您将此类物品粘贴到dict
时,您无法保证任何订单。如果您需要维护订单,则需要使用列表。
如果要根据值中的数字打印这些项目,可以执行以下操作:
for r in sorted(role.items(), key=lambda x: x[1]):
print r
输出:
('user', 1)
('moderator', 2)
('admin', 3)
或者只是将它们存储在一个列表中:
role = ['user', 'moderator', 'admin']
for r in role:
print r
答案 1 :(得分:0)
常规字典不会维护插入元素的顺序,因为字典只是哈希表的一种形式,而您可以使用有序字典link