3 回答

TA貢獻1725條經驗 獲得超8個贊
由于 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.
添加回答
舉報