2011-08-15 6 views

答えて

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 
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())) 

をあなたはそれのキーでソートされた辞書を持っています。

これは、既定では説明したようにタプルがソートされるため、すべて動作します。

0

あなたの望むものによって異なります。あなたがテストのキーの順にソートしたい場合には、次にやる、ソートされたキーの値をしたい場合は、あなたが必要とするすべては

sorted(test) 

ある

[test[key] for key in sorted(test)] 
関連する問題