3 回答
TA贡献1725条经验 获得超7个赞
由于 args 是一个元组,您无法删除值,但您的函数会尝试查找最大值 2 次,您可以使用以下命令更轻松地执行此操作:
def findTwoLargest(*args): maxes = sorted(args, reverse=True)[:2] return maxes[0], maxes[1]
它的作用是对 args 进行排序(它从元组创建一个新列表并返回排序后的列表),然后保留 2 个较大的元素,同时将它们存储在列表 maxes 中。
TA贡献1851条经验 获得超5个赞
从错误来看,参数似乎是作为元组而不是列表传递的。因此,在函数内部 args 被作为元组接收。因此,要删除元素,您首先将元组更改为列表,从列表中删除该元素并将其更改回元组。
#converting the tuple to list
listx = list(tuplex)
#use different ways to remove an item of the list
listx.remove("c")
#converting the tuple to list
tuplex = tuple(listx)
如果打印是唯一的目标,您还可以打印函数内的值而不是返回这些值。
TA贡献1772条经验 获得超5个赞
args是一个元组,因此是不可变的并且不能修改。下面的代码应该可以。
args = list(args)
if args:
max1 = max(args)
args.remove(max1)
print(max1)
if args:
max2 = max(args)
args.remove(max2)
print(max2)
args = tuple(args) # if a tuple is required.
添加回答
举报