キーで辞書をソートしようとしましたが、チャンスはありませんでした。これは私の口述です:
result={'1':'value1','2':'value2',...}
私はPython2.7を使用していますが、これを見つけました
keys = result.keys()
keys.sort()
しかし、これは私が期待したものではなく、ソートされていない辞書があります。
標準Python辞書は本質的に順序付けられていません。ただし、 collections.OrderedDict
。挿入順序が保持されるため、必要なのは、キーと値のペアを目的の順序で追加することだけです。
In [4]: collections.OrderedDict(sorted(result.items()))
Out[4]: OrderedDict([('1', 'value1'), ('2', 'value2')])
sorted(result.iteritems(), key=lambda key_value: key_value[0])
これにより、ソートされた結果が出力されますが、辞書はソートされません。辞書の順序を維持する場合は、 OrderedDict
を使用します
実際、keyでソートすると、key=...
パート。反復されるアイテムは、最初にキーでソートされ、後で値でソートされるため(NPEが回答で使用するもの)
Python辞書は順序付けられていません(定義のため)
代わりに OrderedDict を使用できます