我在request.POST
张贴了这个词:
<QueryDict: {u'csrfmiddlewaretoken': [u'fhvpUorGAl7LMv4JIJRd0WOEHPkKn6iN'], u'actor_1': [u'first_actor'], u'actor_5': [u'second_actor'], u'actor_55': [u'third_actor'], u'actor_2': [u'fourth_actor']}>
我想用按键排序
<QueryDict: {u'actor_1': [u'first_actor'], u'actor_2': [u'fourth_actor'], u'actor_5': [u'second_actor'], u'actor_55': [u'third_actor'], u'csrfmiddlewaretoken': [u'fhvpUorGAl7LMv4JIJRd0WOEHPkKn6iN']}>
有没有办法对词典的键(而不是值)进行排序?
答案 0 :(得分:4)
如上所述,常见的词汇本质上是无序的,但您可以使用OrderedDicts。
import collections
d = {
u'csrfmiddlewaretoken': [u'fhvpUorGAl7LMv4JIJRd0WOEHPkKn6iN'],
u'actor_1': [u'first_actor'],
u'actor_2': [u'fourth_actor']
}
collections.OrderedDict(sorted(d.items()))
答案 1 :(得分:2)
无法对字典进行排序。而是使用例如列表。
但是,您可以打印出使用以下内容排序的值:
d = {u'csrfmiddlewaretoken': [u'fhvpUorGAl7LMv4JIJRd0WOEHPkKn6iN'],
u'actor_1' : [u'first_actor'],
u'actor_5' : [u'second_actor'],
u'actor_55' : [u'third_actor'],
u'actor_2' : [u'fourth_actor']}
keys = d.keys()
keys.sort()
for key in keys:
print d[key]
print keys
结果:
[u'first_actor']
[u'fourth_actor']
[u'second_actor']
[u'third_actor']
[u'fhvpUorGAl7LMv4JIJRd0WOEHPkKn6iN']
[u'actor_1', u'actor_2', u'actor_5', u'actor_55', u'csrfmiddlewaretoken']
显示所有已排序的值,最后一行显示已排序的键。
答案 2 :(得分:0)
没有。从根本上说,Python字典中的键是无序的。查看字典文档here