python - IndexError:与目标相比,尝试查找列表中整数对的总和时,列表索引超出范围
问题描述
我试图从列表中找到这对整数,总和时应该与目标匹配。虽然它与实际目标工作正常,但是当我通过任何非目标进行测试时,我得到了错误
arr=[3,4,5,2,1]
target=1
#arr1=sorted(arr)
#print(arr1)
def arrsum(arr,target):
#arr=sorted(arr)
i=0
y=len(arr)
if len(arr)<2:
return -1
for i in range(y):
if arr[i]+arr[i+1]==target:
return i,i+1
print(arrsum(arr,target))
解决方案
在这种情况下,您需要从中减去 1y
for i in range(y-1)
否则,在最后一部分中,最后一个元素将是arr[i]
,但获取arr[i+1]
会导致错误
推荐阅读
- javascript - 正则表达式显示匹配但不捕获
- windows - 运行 SH 脚本时出现错误“env: bash\r: No such file or directory”
- r - R中聚合函数用于for循环中的切片
- python - 哪些 Python 数据结构可以轻松访问具有多个索引的值?
- javascript - 如何在 JavaScript 对象上单击()?
- visual-studio-code - 如何禁用在 Visual Studio Code 中删除的 TAB?
- php - Laravel 使用数据透视表的多对多关系
- php - 替换元值
- python - Matplotlib 具有相同类变量的多个动画
- android - 如何编写 firebase-Realtimedatabase 的安全规则,以便 unauth 用户只能在我的特定节点上读写