2013-10-27 154 views
2

因此,當隨機列表中的數字被輸入到函數中時,我想切換具有最大元素的第一個元素。然後返回新的列表。交換列表中具有最大元素的第一個元素-python

def jumpMaximum(numList): 
    max2=max(numList) 
    a,b = int(numList[-len(numList)]),max 
    numList[a],numList[b] = numList[b],numList[a] 
    return numList 

我似乎無法弄清楚是什麼導致這種失敗,而不是返回列表。我所需要做的就是取最大號碼,並用第一個號碼切換。

+4

準確地說,它是如何 「失敗」?爲什麼你將'b'綁定到函數'max'?你打算寫'a,b = ...,max2'嗎?爲什麼不使用'numList [0]'而不是'numList [-len(numList)]'?你知道'max(numList)'返回最大元素,而不是最大元素的*索引*嗎?作爲一個開始 ;-) –

回答

2

你可以試試這個:

index_max = a.index(max(a)) 
a[index_max], a[0] = a[0], a[index_max] 
0

調試,你張貼在這裏的代碼,我可以看到兩個錯誤:

  • 您分配給maxb。但max是一個內置函數,不會被接受爲Python列表的有效索引。但我想這只是一個錯字。
  • 使用ab作爲列表索引,它們分別是列表中的第一個和最大元素。

這裏的調試代碼:

def jumpMaximum(numList): 
max2=max(numList) 
a,b = numList.index(int(numList[-len(numList)])),numList.index(max2) 
numList[a],numList[b] = numList[b],numList[a] 
return numList 
相關問題