[英]Finding max in Python dict with nested tuple keys
假设我有这个Python字典:
dict = {
((0,0), 'A'): 0.0,
((0,0), 'B'): 0.7,
...
((2,4), 'C'): 0.2,
...}
我想找到给定嵌套元组的最大值,如(0,0)。 就像是:
max(dict((0,0), *).
在这种情况下,它应该返回0.7,该怎么做?
使用collections.defaultdict
后跟字典理解:
d = {((0,0), 'A'): 0.0,
((0,0), 'B'): 0.7,
((2,4), 'C'): 0.2}
from collections import defaultdict
res = defaultdict(list)
for (k1, k2), v in d.items():
res[k1].append(v)
max_vals = {k: max(v) for k, v in res.items()}
print(max_vals)
{(0, 0): 0.7, (2, 4): 0.2}
如果我了解您的需要。
d = {((0,0), 'A'): 0.0, ((0,0), 'B'): 0.7, ((2,4), 'C'): 0.2,}
dValue = dict((k, v) for k,v in d.items() if k[0] == (0,0))
print( max(dValue.values()) )
输出:
0.7
我为您的问题做了一个非常简单的例子。 当然,有一种更有效的方法可以做到这一点。
dict = { ((0, 0), "A"): 0.0,
((0, 0), "B"): 0.7,
((0, 0), "C"): 0.9,
((0, 1), "A"): 0.0,
((0, 1), "B"): 0.7,
((0, 1), "C"): 0.8}
mymax={}
for key1,key2 in dict:
if key1 in mymax:
mymax[key1] = max(mymax[key1],dict[(key1,key2)])
else:
mymax[key1] = dict[(key1,key2)]
mymax= {(0, 0): 0.9, (0, 1): 0.8}
具有每种类型的最大值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.