使用2个键进行Dict,找到1个键的最大值,同时保持另一个键稳定

时间:2018-05-14 14:50:06

标签: python for-loop max

我在Python中有一个字典n[i,j]。我想找到每个i的dict的每个最大值。

dict看起来像这样:

n[1,1]=3
n[1,2]=4
n[1,3]=7
n[2,1]=5
n[2,2]=64
n[2,3]=32
n[3,1]=21
n[3,2]=21
n[3,3]=45

我想获得每个i的最大值。在这种情况下 对于i=1,最大值为n[1,3] = 7,并且 对于i=2,最大值为n[2,2] = 64, 等等。

2 个答案:

答案 0 :(得分:0)

这应该有效:

max = [0] * N
for i in range(N):  
    for j in range(N):
        if n[i, j] > max[i]:
            max[i] = n[i, j]

答案 1 :(得分:0)

为了清晰起见,我已经在几行中做了这个,但是如果你喜欢单行,你可以在嵌套的词典理解中做到这一点:

>>> from collections import defaultdict
>>> result = defaultdict(list)
>>> for (i,j),v in n.items():
    result[i].append(v)
>>> for i,v in result.items():
    print (i,max(v))
1 7
2 64
3 45