python - IndexError:列表索引超出范围 Python。不使用 sort 或 sorted:
问题描述
我的代码有问题。我对 Python 还是很陌生,但我很感激朝着正确的方向前进。我正在尝试对一系列数字进行排序并返回排序。我不是在寻求答案,而是寻求帮助我更正自己的代码的指导。
我不确定如何解决超出范围的问题。我需要在某处添加-1吗?
def interleaved(seq1,seq2):
seq1= [-7, -2, -1]
seq2= [-4, 0, 4, 8]
i = 0
j = 0
res = []
while i <len(seq1) and j <len(seq2):
print(i,j,seq1[i],seq2[j])
i+=1
j+=1
if seq1[i] <seq2[j]:
print(res)
i+=1
res.append(seq1[i])
if seq1[i]> seq2[j]:
print(res)
j+=1
res.append(j)
return res
解决方案
您需要更好地澄清问题并写下您想要做什么。但是,在这种情况下,您正在谈论的超出范围问题会出现,因为您在运行 if 循环之前增加了 i 和 j 。
while i <len(seq1) and j <len(seq2):
print(i,j,seq1[i],seq2[j])
i+=1
j+=1
当这个 while 循环从i == 2
代码的第三行开始时,将值i
增加到 3,因此 if 循环无法执行,因为 index 超出范围。
您可以通过添加 来解决此问题break
,但是添加它的时间和位置取决于您希望代码执行的操作。
推荐阅读
- c# - mediaCapture.InitializeAsync 中的“没有可用的捕获设备”
- javascript - 如何在 React 中制作可编辑的卡片?
- java - 如何使用 Heroku & Maven 和 GitHub 托管我的 Telegram Bot [JAVA]?
- react-redux - 在ofType之后如何进一步检查动作类型?
- docker - 是否可以创建父子 Dockerfile 并覆盖 ENTRYPOINT?
- python - 考虑数量的市场篮子分析
- javascript - 如何让我的计算器在输入数字前默认显示“0”?另外如何添加键盘输入功能?香草JS
- android-studio - 在 Dart/Flutter/AndroidStudio 中为 Webview 使用 SafeArea
- postgresql - 如何从 postgresql 下载数据
- html - Oxwall - 删除元标记