我在這裏找不到我的錯誤,如果有人可以幫助我會很好。TypeError:列表索引必須是整數,而不是在堆中浮動
def heapsort (lista) :
n= len(lista)-1
k= n/2
while (k>0) :
downheap(lista,n,k)
k-=1
while (n>=0) :
(lista[1]),(lista[n])=(lista[n]),(lista[1])
n-=1
return downheap(lista, n, 1)
return lista
def downheap (lista, n, k) :
v= lista[k]
while (k<=(n/2)) :
j=k+k
if (j<n and (lista[j]) == (lista[j])) :
break
(lista[k]) = (lista[j])
k = j
lista[k] = v
錯誤:
>>> heapsort([4,2,3,1])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 5, in heapsort
File "<stdin>", line 2, in downheap
TypeError: list indices must be integers, not float
這是Python 3的吧? Python錯誤帶有完整的追溯功能,當您詢問有關Python問題的時候,請包括這些錯誤。 –
我們將如何去重現您的錯誤?你如何調用'heapsort()',以便觸發異常? –
我能猜到,*這次*。但是對於未來的問題,請包括一小段代碼,讓我們重現您的問題。 –