2013-10-13 60 views
0

如果我有两个列表并找到这两个列表之间的最大元素。 我使用Python的numpy模块实现这一点,假设nc是列表。来自两个列表的最大元素索引

numpy.max(max(n, c)) --- 1 
n = [7,1,54,812,124,6,21] 
c = [1,23,5,6,2,345] 
final value = [0][3] 

如果需要获得从列表中元素的索引,我们做这样的事情:

list1.index(int(value)) 

我们如何找到最大的元素,在这个最大元素的索引作为eq(1)的值获得。

回答

4

使用numpy.argmax

>>> import numpy 
>>> numpy.argmax([5, 4, 3, 9, 1, 2]) 
3 
>>> numpy.argmax([10, 5, 4, 3, 9, 1, 2]) 
0 

import numpy 

def find_max_index(xs): 
    candidates = [((i,numpy.argmax(x))) for i, x in enumerate(xs)] 
    return max(candidates, key=lambda pos: xs[pos[0]][pos[1]]) 

例子:

>>> n = [7,1,54,812,124,6,21] 
>>> c = [1,23,5,6,2,345] 
>>> find_max_index([n, c]) 
(0, 3) 
+0

是否也工作时,有两个以上的列表? – pistal

+0

@pistal,你能否用'n'和'c'的实际值更新问题,期望的输出是多少? – falsetru

+0

已更新。 我不认为这是可能的。但是,希望不是一件坏事 - 肖申克;) – pistal

相关问题