所以,我试图解决这个python问题,在实践中,我必须从列表中的5个整数中找出最小和最大4个整数的和。我的逻辑似乎是好的,因为它是工作的最大数组,但我不知道为什么它有一个问题,以工作的最小数组。你知道吗
代码
arr=list(map(int, input().split()))
def miniMaxSum(arr):
maxarr=arr
minarr=arr
minsum=0
maxsum=0
for i in range(4):
maxsum+=max(maxarr)
maxarr.remove(max(maxarr))
minsum+=min(minarr)
minarr.remove(min(minarr))
print(minsum,maxsum)
miniMaxSum(arr)
输入
10 2 5 8 3
预期产量*
18 26
但它给了我这个错误
<ipython-input-1-2cb97cb38fd0> in miniMaxSum(arr)
9 maxsum+=max(maxarr)
10 maxarr.remove(max(maxarr))
---> 11 minsum+=min(minarr)
12 minarr.remove(min(minarr))
13 print(minsum,maxsum)
ValueError: min() arg is an empty sequence
当您将一个不可变对象(例如,list)传递到函数中时,实际上是通过引用传递它。通过在删除之前和之后打印出
minarr
,您可以很容易地看到这一点:要解决此问题,可以创建列表的副本:
还有。。。只是一个建议。。。如果计算整个列表的和
s
,就会容易得多。然后你可以设置相关问题 更多 >
编程相关推荐