4

listsort()メソッドは、を返す修飾子関数ですNone

したがって、辞書内のすべてのキーを反復処理したい場合は、次のことはできません。

for k in somedictionary.keys().sort():
    dosomething()

代わりに、私はしなければなりません:

keys = somedictionary.keys()
keys.sort()
for k in keys:
    dosomething()

複数のステップに分割することなく、これらのキーをソートされた順序で繰り返すためのきれいな方法はありますか?

4

3 に答える 3

19
for k in sorted(somedictionary.keys()):
    doSomething(k)

次のように、すべてのキーと値をキーで並べ替えることもできることに注意してください。

for k, v in sorted(somedictionary.iteritems()):
   doSomething(k, v)
于 2008-11-29T05:20:37.567 に答える
7

自分の質問に答えてもいいですか?

私が探していたものを正確に実行する便利な関数「sorted」を発見しました。

ソートされた(somedictionary.keys())のkの場合:
    dosomething()

Python2.5辞書2キーソートに表示されます

于 2008-11-29T05:06:35.880 に答える
7

実際には、 .keys() は必要ありません:

for k in sorted(somedictionary):
    doSomething(k)

また

[doSomethinc(k) for k in sorted(somedict)]
于 2009-05-13T05:54:38.103 に答える