检索与字典的嵌套字典中的最小值相对应的键
Retrieve keys corresponding to minimum value in nested dict of dicts
This answer解释了如何获取字典中最小值对应的键。
您将如何扩展它以获得字典中最小值的 keys?
例如,假设我们有一个字典的字典:
d = {
3: {5: 0.6, 37: 0.98, 70: 0.36},
5: {5: 2.67, 37: 0.01, 70: 0.55},
7: {5: 0.2, 37: 0.3, 70: 1.2}
}
如何获取外字典和内字典分别对应最小值0.01的key(5,37)?有没有 pythonic 的方法来做到这一点?
一种方法是重组字典并使用列表理解来检索具有最小值的键:
d = {
3: {5: 0.6, 37: 0.98, 70: 0.36},
5: {5: 2.67, 37: 0.01, 70: 0.55},
7: {5: 0.2, 37: 0.3, 70: 1.2}
}
res_dict = {}
for k, v in d.items():
for k2, v2 in v.items():
res_dict[(k, k2)] = v2
minval = min(res_dict.values())
res = [k for k, v in res_dict.items() if v == minval]
print(res)
# [(5, 37)]
This answer解释了如何获取字典中最小值对应的键。
您将如何扩展它以获得字典中最小值的 keys?
例如,假设我们有一个字典的字典:
d = {
3: {5: 0.6, 37: 0.98, 70: 0.36},
5: {5: 2.67, 37: 0.01, 70: 0.55},
7: {5: 0.2, 37: 0.3, 70: 1.2}
}
如何获取外字典和内字典分别对应最小值0.01的key(5,37)?有没有 pythonic 的方法来做到这一点?
一种方法是重组字典并使用列表理解来检索具有最小值的键:
d = {
3: {5: 0.6, 37: 0.98, 70: 0.36},
5: {5: 2.67, 37: 0.01, 70: 0.55},
7: {5: 0.2, 37: 0.3, 70: 1.2}
}
res_dict = {}
for k, v in d.items():
for k2, v2 in v.items():
res_dict[(k, k2)] = v2
minval = min(res_dict.values())
res = [k for k, v in res_dict.items() if v == minval]
print(res)
# [(5, 37)]