2016-08-26 17 views
0

内辞書における最小日付を識別する:ようなので、私のデータは、辞書内の辞書に配置されている辞書

dict = {subdict1:{}, subdict2:{},...} 

ここ

subdict1 = { subdict_a: {"date":A, "smallest_date":False}, subdict_b : {"date":B, "smallest_date": False},...} 

Iはサブディクショナリをループ、Bたいです、c ...それぞれのサブ辞書で日付A、B、C ...のどれが最小かを識別し、 'smallest_date'の値をTrueに変更します。

どのようにこの問題にアプローチしますか?私はこのような何かを試してみましたが、かなりそれを終えることができませんでした。その後、

for subdict_number, values1 in dict.items(): 
    smallest_date = None 
    for subdict_alphabet, values2 in values1.items(): 
     if smallest_date == None or smallest_date > values2["date"] 
      smallest_date = values2["date"] 
      smallest_subdict = subdict_alphabet 

そしてsubdict内のループがセットに続い

dict[subdict][smallest_subdict]["date"] = smallest_date 

と行うために、次subdictに進みを閉じて、いくつかの魔法同じこと。

私はこれを終了できません。あなたは私を助けることができます?まったく違ったアプローチが使えますが、初心者としては考えられませんでした。

+0

'辞書は[subdict] [smallest_subdict] [ "日付"] = smallest_date'はおそらく'辞書は[subdict_number] [smallest_subdict] [ "smallest_date" でなければなりません] = True'である。 – dhke

+0

"最も小さい"日付はどういう意味ですか?あなたは最も古いか最新の意味ですか?それらは日時オブジェクトですか? –

答えて

0

私は名前の説明を維持しようとしました。

入力辞書を考える:subdicts介し

main_dict = { 'subdict1' : {'subdict_1a': {"date":1, "smallest_date":False}, 
         'subdict_1b' : {"date":2, "smallest_date": False}}, 
      'subdict2': {'subdict_2a': {"date":3, "smallest_date":False}, 
         'subdict_2b' : {"date":4, "smallest_date": False}}} 

反復を変数宣言:subsubdicts介し

for subdict in main_dict: 
    min_date = 10000000 
    min_date_subsubdict_name = None 

反復を最初のループの内部最小

for subsubdict in main_dict[subdict]: 
     if main_dict[subdict][subsubdict]['date'] < min_date: 
      min_date = main_dict[subdict][subsubdict]['date'] 
      min_date_subsubdict_name = subsubdict 

を決定第2ループの外側:

main_dict[subdict][min_date_subsubdict_name]['smallest_date'] = True 

これは出力maindictを返す必要があります:

{'subdict2': {'subdict_2a': {'date': 3, 'smallest_date': True}, 'subdict_2b': {'date': 4, 'smallest_date': False}}, 'subdict1': {'subdict_1a': {'date': 1, 'smallest_date': True}, 'subdict_1b': {'date': 2, 'smallest_date': False}}} 
関連する問題