返回具有最大值的列表索引

时间:2013-02-11 05:34:38

标签: python

def findMaxDiff(l):
    'list(list(int)), returns index of the row with the maximum difference between elements and the value of the difference in that row'
    return (max(max(a) - min(a) for a in l), l.index(max(l, key=max)))

虽然我已经让它返回最大数字的值,但我无法让它返回该列表的正确索引。在这种情况下它工作正常:

>>> findMaxDiff([[12,3,50,17], [10,5,9,100,31], [5,3,1]])
    (95, 1)

但在这种情况下不会。

>>> findMaxDiff([[0,10],[99,99]])
    (10, 1)
>>> findMaxDiff([[1],[2],[3]])
    (0, 2)

对于第一个,它应该返回(10,0),第二个应该返回(0,0)。我已经尝试过key = sum和key = max,但两者都返回相同的东西。

1 个答案:

答案 0 :(得分:2)

这是怎么回事:

def thing(list_):                                  
  temp = enumerate(max(x) - min(x) for x in list_)
  return max(x[::-1] for x in temp)