0

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

我使用了一些代码来解决被问到的类似问题。

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 个参数。谢谢你。

4

3 回答 3

5

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

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

或者

def maxvalpos(*variables):
于 2013-06-24T02:36:12.370 回答
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)
于 2013-06-24T02:52:34.077 回答
1

这样做的pythonic方式:

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

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

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

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

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

于 2013-06-24T02:41:20.497 回答