35

dictをキーで並べ替えようとしましたが、チャンスはありませんでした。これは私の口述です:

result={'1':'value1','2':'value2',...}

私はPython2.7を使用していますが、これを見つけました

keys = result.keys()
keys.sort()

しかし、これは私が期待したものではありません、私は分類されていない口述を持っています。

4

3 に答える 3

11

標準のPython辞書は本質的に順序付けられていません。ただし、を使用することはできますcollections.OrderedDict。挿入順序が保持されるため、必要なのは、キーと値のペアを目的の順序で追加することだけです。

In [4]: collections.OrderedDict(sorted(result.items()))
Out[4]: OrderedDict([('1', 'value1'), ('2', 'value2')])
于 2013-03-25T11:44:30.237 に答える
9
sorted(result.iteritems(), key=lambda key_value: key_value[0])

これにより、ソートされた結果が出力されますが、辞書はソートされないままになります。辞書の順序を維持したい場合は、OrderedDict

実際、キーで並べ替えると、その部分をスキップできますkey=...。これは、繰り返されるアイテムが最初にキーで並べ替えられ、後で値で並べ替えられるためです(NPEが回答で使用するもの)

于 2013-03-25T11:44:24.277 に答える
3

Python辞書は順序付けされていません(定義用)

代わりにOrderedDictを使用できます

于 2013-03-25T11:44:02.830 に答える