python - TypeError:列表索引必须是整数或切片,而不是浮点数;
问题描述
我有一个错误的问题:
TypeError: list indices must be integers or slices, not float
在下面我的代码的这一行:
a1[j+1] = key
下面是我的代码:
a1 = [4.3, 5.2, 5.0, 1.5, 3.8, 4.1, 5.5, 1.9]
sum = 0
count = len(a1)
for i in a1:
sum = sum + float(i)
key = a1[index]
j = i-1
while j >= 0 and key < j :
a1[j + 1] = a1[j]
j -= 1
a1[j+1] = key
mean = sum/count
print("Answer for y = 1.5")
print("Average: {0}".format(mean))
我想要一个插入排序来对数组 a1 进行排序
解决方案
对于插入排序,你可以试试这个。但是,使用您的方法找出总数将导致错误的 ans,因为 a1 在每次迭代中都会被修改,并且会导致总数的计算不正确。相反,您可以使用python 提供的sum()方法来计算列表的总数。
a1 = [4.3, 5.2, 5.0, 1.5, 3.8, 4.1, 5.5, 1.9]
total = 0
count = len(a1)
for i in range(1, len(a1)):
key = a1[i]
j = i-1
while j >=0 and key < a1[j] :
a1[j+1] = a1[j]
j -= 1
a1[j+1] = key
total =sum(a1)
mean = total/count
print("Answer for y = 1.5")
print("Average: {0}".format(mean))
print(a1)
输出 :
Answer for y = 1.5
Average: 3.9124999999999996
[1.5, 1.9, 3.8, 4.1, 4.3, 5.0, 5.2, 5.5]
推荐阅读
- firebase - Firebase:在开始交易之前检查参考是否存在是否足够好
- go - 如何找到 Go 模块源缓存?
- android - 使用新的 Android X 进行单元测试
- vba - 无法从规则中的代码重命名和删除附件
- java - 避免在基于工厂的通用 MVP 框架中进行强制转换
- windows - 在 notpad.exe PE 标头中找不到 AddressOfEntryPoint
- javascript - 如何在打字稿中描述一个简单的 Just 函子的接口?
- r - 如何在网格中绘制多个时间序列图,每个图都有两个 y 轴?
- python - TensorFlow Jupyter Notebook 中的 Matplotlib
- highcharts - 动态更改条形颜色 - highcharts