我有一本字典:
test = {}
test[(1,2)] = 1
test[(4,3)] = 1
test[(1,4)] = 1
如何按“伪复合键”排序:元组的第一个元素和元组的第二个元素之后?
答案 0 :(得分:7)
test = {}
test[(1,2)] = 1
test[(4,3)] = 2
test[(1,4)] = 3
print sorted(test.iteritems())
会给你:
[((1, 2), 1), ((1, 4), 3), ((4, 3), 2)]
如果你想把它们当作字典:
import OrderedDict
sorted_test = OrderedDict(sorted(test.iteritems()))
你有一本按字母键排序的字典。
这一切都有效,因为默认情况下,元组按您所描述的那样排序。
答案 1 :(得分:1)
无法按定义对字典进行排序。您可以做的是获取密钥列表,对其进行排序,然后按给定顺序引用字典。例如:
test = {}
test[(1,2)] = 1
test[(4,3)] = 2
test[(1,4)] = 3
keys = sorted(test.keys()) # nothing fancy, default sort
for key in keys:
print test[key]
>>> 1
>>> 3
>>> 2
答案 2 :(得分:0)
这完全取决于你想要什么。如果您希望按顺序排序测试键,则只需
sorted(test)
如果您想要排序键的值,请执行
[test[key] for key in sorted(test)]