2

私はこのdictをに投稿しました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']}>

辞書のキー (値ではない) をソートする方法はありますか?

4

3 に答える 3

4

前述のように、一般的な dict は本質的に順序付けされていませんが、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()))
于 2013-09-05T11:05:49.843 に答える
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']

ソートされたすべての値と、ソートされたキーを表示する最後の行が表示されます。

于 2013-09-05T10:56:44.730 に答える
0

いいえ。基本的に、Python 辞書のキーは順不同です。ここで辞書のドキュメントを確認してください

于 2013-09-05T10:57:01.350 に答える