2012-04-24 24 views
2

私は以下のような辞書を持っています。Pythonで - ネストされた辞書の最大日付を見つける

キー '10000ag2'と10000ag1 'の場合、どのキーに最大日付のlast_eventがあるかを調べる最も効率的な手段は何ですか?

{'10000ag2': 
    {'last_view': datetime.datetime(2012, 4, 24, 8, 27, 30), 
    'last_event': datetime.datetime(2012, 4, 24, 8, 28, 30), 
    'last_prid': '300'}, 
'10000ag1': 
    {'last_view': datetime.datetime(2012, 4, 24, 8, 27, 30), 
    'last_event': datetime.datetime(2012, 4, 24, 8, 28, 30), 
    'last_prid': '300'}} 

20のトップレベルキー。

おかげ

答えて

7
max(my_dict.items(), key=lambda x: x[1]['last_event'])[0] 
+0

OPが要求したように、これは20トップのキーを見つけることができません。たぶん 'sorted'と' reverse = True'で20要素をスライスします。 –

+0

私は20の最大値を求めていましたが、最も効率的な方法でした。 – Tampa

+0

トップ20はO(n)で見つけることができます。ソートはO(n log n)なので、理論的にはより効率的に行うことができますが、実際にはディクテーションは問題のためには膨大なものになります –

関連する問題