我的数据按字典排列在词典中,如下所示:
dict = {subdict1:{}, subdict2:{},...}
,其中
subdict1 = { subdict_a: {"date":A, "smallest_date":False}, subdict_b : {"date":B, "smallest_date": False},...}
我想循环遍历子句a,b,c ...并确定每个子字典中哪个日期A,B,C ...最小,并将'smallest_date'的值更改为真正。
如何解决这个问题?我尝试过类似的东西,但还不能完成它:
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
然后一些魔法在子句中的循环关闭集
dict[subdict][smallest_subdict]["date"] = smallest_date
然后继续下一个细分来做同样的事情。
我无法完成这件事。你能帮我吗?可以使用完全不同的方法,但作为一个初学者,我想不出一个。
答案 0 :(得分:0)
我试图保留命名说明。
给出输入字典:
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}}}
遍历subdicts并声明变量:
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
在第一个循环中,但在第二个循环之外:
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}}}