2013-10-27 50 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 
相关问题