python - Python:在列表中查找最大元素索引
问题描述
我有一个清单
arr = [0, 1, 45, 2, 40, 3, 70, 4, 45, 5, 6, 7, 8, 9]
我正在尝试使用以下代码从 3 个连续元素中找到最大元素的位置/索引:
for i in range (0, len(arr)-3):
print(arr.index(max(arr[i : i+3])))
当i
转到位置 7 时,它给出了错误的结果。
结果应该是:
2 2 2 4 6 6 6 8 8 11 12
而是相反
2 2 2 4 6 6 6 2 2 11 12
解决方案
那是因为有两个45
' 并index
返回第一次出现。您可以传递一个start
andend
参数来告诉index
方法从哪个索引开始查找。
for i in range (0, len(arr)-3):
print(arr.index(max(arr[i : i+3]), i, i+3))
或者:
for i in range (0, len(arr)-3):
sliced_array = arr[i : i+3]
print(i + sliced_array.index(max(sliced_array)))
推荐阅读
- python - itertools.product 真的会生成所有可能的排列吗?
- json - 将 Spark 数据帧导出为带有自定义元数据的 JSON 数组
- java - java bean创建、休眠和spa的问题
- r - 为什么在 R 中分解时间序列的 stl 函数不起作用?
- shell - QProcess 和命令读取
- android - 如何将图像作为按钮的背景,同时仍然应用可绘制文件
- php - 如何编写基于 json 格式的 ID 显示 3 个表的 php 代码?
- r - 将一列数据框添加到 R 中的现有数据框列?
- mysql - 使用mysql获取查询返回的总行数
- mongodb - mongoClient.connect VS mongoose.connect 在 MongoDB