我有一本字典,看起来像下面的字典。我想做的是找到丢失的月份,并将其添加为值为Nan的新键。
{'Congress': {'April': '5.902',
'August': '5.925',
'January': '5.881',
'February': '5.888',
'July': '5.920',
'June': '5.910',
'March': '5.896',
'May': '5.906',
'November': '5.942',
'October': '5.938',
'September': '5.933'},
'Entity': {'April': '64.320',
'August': '64.642',
'December': '64.825',
'January': '63.965',
'February': '64.089',
'July': '64.604',
'June': '64.509',
'March': '64.221',
'May': '64.404',
'October': '64.757',
'September': '64.690'}}
在国会字典中,我们缺少12月,在实体字典中,我们缺少11月。
到目前为止,我已经尝试创建一个名为“ months”的列表,并对其进行迭代以查找字典中哪些值不在列表中。但是,这似乎不起作用,因为当我尝试打印它时,它不会打印任何内容,因此肯定不会添加键和值。
list_of_months =['January','February','March','April','May','June','July','August','September','October','November','December']
for k, v in newd.items():
for x in v.keys():
if x not in list_of_months :
print(x)
预期输出应为:
{'Congress': {'April': '5.902',
'December': 'Nan' ---------------------> Missing value to be added
'August': '5.925',
'January': '5.881',
'February': '5.888',
'July': '5.920',
'June': '5.910',
'March': '5.896',
'May': '5.906',
'November': '5.942',
'October': '5.938',
'September': '5.933'},
'Entity': {'April': '64.320',
'November': 'Nan' ---------------------> Missing value to be added
'August': '64.642',
'December': '64.825',
'January': '63.965',
'February': '64.089',
'July': '64.604',
'June': '64.509',
'March': '64.221',
'May': '64.404',
'October': '64.757',
'September': '64.690'}}
有人可以向我解释我做错了什么,什么是检查当前月份并添加缺失月份的更好方法?
谢谢
使用set
差异检查缺少的月份
例如:
list_of_months ={'January','February','March','April','May','June','July','August','September','October','November','December'}
for k,v in data.items():
for i in list_of_months - set(v.keys()): # Check for missing Month
v[i] = 'Nan' # Add Month
print(data)
输出:
{'Congress': {'April': '5.902',
'August': '5.925',
'December': 'Nan',
'February': '5.888',
'January': '5.881',
'July': '5.920',
'June': '5.910',
'March': '5.896',
'May': '5.906',
'November': '5.942',
'October': '5.938',
'September': '5.933'},
'Entity': {'April': '64.320',
'August': '64.642',
'December': '64.825',
'February': '64.089',
'January': '63.965',
'July': '64.604',
'June': '64.509',
'March': '64.221',
'May': '64.404',
'November': 'Nan',
'October': '64.757',
'September': '64.690'}}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句