在列表中查找最大值的总和和位置

时间:2013-06-24 02:35:05

标签: python list max

我想创建一个函数,在一个数字列表中打印最大值的总和和位置,但我不知道该怎么做...这就是我开始的到目前为止:

我使用了一些类似问题的代码。

def maxvalpos(variables):
    max = 0 
    for i in range(len(variables)):
        if variables[i] > max:
            max = variables[i]
            maxIndex = i 
    return (max, maxIndex)

print maxvalpos(4, 2, 5, 10)

当我运行此代码时,它只返回该函数只能接受1个参数。谢谢。

3 个答案:

答案 0 :(得分:5)

然后给它一个参数,或修改定义。

print maxvalpos([4, 2, 5, 10])

def maxvalpos(*variables):

答案 1 :(得分:1)

这样做的pythonic方式:

my_list_sum=sum(my_list)
index_max=my_list.index(max(my_list))

这可以找到列表的总和和列表最大值的索引

但是代码中的问题是:您正在向函数发送四个变量并仅接收1个变量。为此,请使用:

maxvalpos([4,2,7,10])

这只发送一个参数,一个列表到函数

答案 2 :(得分:1)

更简单的方法

>>> from operator import itemgetter
>>> maxpos, maxval = max(enumerate(my_list), key=itemgetter(1))

例如

>>> max(enumerate([4, 2, 5, 10]), key=itemgetter(1))
(3, 10)