我有一个以下形式的嵌套字典:
{'2015-01-01': {'time': '8', 'capacity': '5'},
'2015-01-02': {'time': '8', 'capacity': '7'},
'2015-01-03': {'time': '8', 'capacity': '8'} etc}
该词典是使用 dictreader 从 csv 文件创建的。我想要做的是返回容量的最大值。所以在这种情况下是 8。
我可以用:
for k,v in input_dict.items():
if temp_max < int(v['capacity']):
temp_max = int(v['capacity'])
哪个有效,但我想知道是否有更简洁的方法?我搜索并找到了提取与最大值相关的顶级密钥的方法,这当然不是我需要的。见下文:
max(input_dict, key=lambda v: input_dict[v]['capacity'])
这将返回“2015-01-03”,所以我想上面的一个班轮有一个简单的模组,它会给我我需要的东西,但让我难住了!
有任何想法吗?
你要
max(int(d['capacity']) for d in input_dict.values())
解释:
如果您不关心键,只需迭代嵌套的字典(IOW 外部字典的值)
另外,您的内部字典“容量”值存储为字符串,我假设您想测试整数值。要找出差异,请检查以下内容:
>>> max(["1", "5", "18", "01"])
'5'
>>> max([1, 5, 18, 01])
18
>>>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)