import math
a=[100,4,5,10,3,1]
def swap(a,b):
temp=a
a=b
b=temp
for i in range(len(a),int(len(a)/2),-1):
l=i
print l
print int(math.ceil(int((l)/2.0)))
print a[int(math.ceil(int((l)/2.0)))]
print math.ceil(a[int((l)/2.0)])
print a[l-1]
while(l>1 and a[l-1] < a[int(math.ceil(int((l)/2.0)))]):
swap(a[l-1],a[int(math.ceil(int((l)/2.0)))])
print l
l= math.ceil(int((l))/2.0)
print a
输出:
6
3
10
10.0
1
6
Traceback (most recent call last):
File "heap.py", line 15, in <module>
while(l>1 and a[l-1] < a[int(math.ceil(int((l)/2.0)))]):
TypeError: list indices must be integers, not float
我用相同的查询检查了很多关于stackoverflow的问题, 也尝试使用// //,但错误持续存在。我正在使用 我打印和测试的int值。任何人都可以将我重定向到 类似的问题(如果此副本)或帮助我解决这个问题 错误?