私は辞書を持っている:擬似複合キーで辞書を並べ替える方法は?
test = {}
test[(1,2)] = 1
test[(4,3)] = 1
test[(1,4)] = 1
「擬似複合キー」でソートする方法:タプルの最初の要素とのタプルの第二の要素の後に?
私は辞書を持っている:擬似複合キーで辞書を並べ替える方法は?
test = {}
test[(1,2)] = 1
test[(4,3)] = 1
test[(1,4)] = 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
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()))
をあなたはそれのキーでソートされた辞書を持っています。
これは、既定では説明したようにタプルがソートされるため、すべて動作します。
あなたの望むものによって異なります。あなたがテストのキーの順にソートしたい場合には、次にやる、ソートされたキーの値をしたい場合は、あなたが必要とするすべては
sorted(test)
ある
[test[key] for key in sorted(test)]