27

次のような Python 辞書があります。

{
   'apple': datetime.datetime(2012, 12, 20, 0, 0, tzinfo=<UTC>),
   'orange': datetime.datetime(2012, 2, 4, 0, 0, tzinfo=<UTC>),
   'raspberry': datetime.datetime(2013, 1, 9, 0, 0, tzinfo=<UTC>)
}

辞書を日時値でソートする最良の方法は何ですか? 最新のキーから古いキーの順に出力されたリストを探しています。

4

4 に答える 4

20

次のようにキーを並べ替えることができます。

sorted(dct, key=dct.get)

この説明およびその他のソート方法については、 Sorting Mini-HOW TOを参照してください。

于 2013-08-09T17:10:42.287 に答える
3

質問がdatetime 値でソートする方法を尋ねることに留意して、ここに可能な答えがあります:

sorted(dct.items(), key=lambda p: p[1], reverse=True)

=> [('raspberry', datetime.datetime(2013, 1, 9, 0, 0)),
    ('apple', datetime.datetime(2012, 12, 20, 0, 0)),
    ('orange', datetime.datetime(2012, 2, 4, 0, 0))]

キーだけに興味がある場合:

[k for k, v in sorted(dct.items(), key=lambda p: p[1], reverse=True)]

=> ['raspberry', 'apple', 'orange']
于 2013-08-09T17:17:00.827 に答える
0

それは本当に簡単です、あなたはただ次のようにします:

 from operator import itemgetter
 sorted(a.items(),key=itemgetter(1),reverse=True)
于 2013-08-09T17:21:51.677 に答える