我有以下字典,我在每個嵌套字典中獲得最大值,但我也想獲得包含它的鍵。我怎樣才能拿到鑰匙?
字典:
{0: {'No': 0.0008701660440099657, 'Yes': 0.00041988149400856126},
1: {'No': 0.00030532988393349125, 'Yes': 0.0004650428587258767},
2: {'No': 0.0009029060356133256, 'Yes': 0.0007394058270439404},
3: {'No': 5.692242884555282e-05, 'Yes': 0.0005919332682707075},
4: {'No': 0.00015013263827995824, 'Yes': 0.00013704067699909492},
5: {'No': 0.0006475515553117131, 'Yes': 0.000398292472360402},
6: {'No': 0.00015299971518718442, 'Yes': 0.000636069387240845},
7: {'No': 0.0003432474070424342, 'Yes': 0.0001701115953231753},
8: {'No': 0.00029659442779058097, 'Yes': 0.0001243229615986186},
9: {'No': 0.0002346339088222795, 'Yes': 4.1301441738705087e-05}}
獲取最大值的代碼:
for i in range(len(res_dic)):
print(max(res_dic[i].values()))
預期輸出:
No, 0.0008701660440099657
uj5u.com熱心網友回復:
假設您想要的是從該嵌套字典中的所有數字中獲取最大值……您可以將它們全部轉換為生成器中的元組并對它們應用 max:
>>> max((o[t], t, n) for n, o in input.items() for t in ('Yes', 'No'))
(0.0009029060356133256, 'No', 2)
uj5u.com熱心網友回復:
嘗試使用max帶key:
for i in range(len(res_dic)):
x = max(res_dic[i], key=res_dic[i].get)
print(x, res_dic[i][x])
輸出:
No 0.0008701660440099657
Yes 0.0004650428587258767
No 0.0009029060356133256
Yes 0.0005919332682707075
No 0.00015013263827995824
No 0.0006475515553117131
Yes 0.000636069387240845
No 0.0003432474070424342
No 0.00029659442779058097
No 0.0002346339088222795
uj5u.com熱心網友回復:
你可以試試這個
maxi = -1000000
keyi = None
for k,v in d.items():
for k1, v1 in v.items():
if v1>maxi:
maxi = v1
keyi = k1
print(keyi, maxi)
uj5u.com熱心網友回復:
使用的關鍵引數max通過它的值找到專案的最大值:
from operator import itemgetter
res_dic = {0: {'No': 0.0008701660440099657, 'Yes': 0.00041988149400856126},
1: {'No': 0.00030532988393349125, 'Yes': 0.0004650428587258767},
2: {'No': 0.0009029060356133256, 'Yes': 0.0007394058270439404},
3: {'No': 5.692242884555282e-05, 'Yes': 0.0005919332682707075},
4: {'No': 0.00015013263827995824, 'Yes': 0.00013704067699909492},
5: {'No': 0.0006475515553117131, 'Yes': 0.000398292472360402},
6: {'No': 0.00015299971518718442, 'Yes': 0.000636069387240845},
7: {'No': 0.0003432474070424342, 'Yes': 0.0001701115953231753},
8: {'No': 0.00029659442779058097, 'Yes': 0.0001243229615986186},
9: {'No': 0.0002346339088222795, 'Yes': 4.1301441738705087e-05}}
by_value = itemgetter(1)
for val in res_dic.values():
k, v = max(val.items(), key=by_value)
print(k, v)
輸出
No 0.0008701660440099657
Yes 0.0004650428587258767
No 0.0009029060356133256
Yes 0.0005919332682707075
No 0.00015013263827995824
No 0.0006475515553117131
Yes 0.000636069387240845
No 0.0003432474070424342
No 0.00029659442779058097
No 0.0002346339088222795
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/310998.html
下一篇:將負整數附加到串列Python中
