这是我的难题。想象一下,Python 中有一个循环和一个包含 100 个成员的列表,如下所示:
myList=range(100)
for i in range(100):
print(myList[i])
print(myList[i+5])
print(myList[i-5])
如何防止 myList 的索引超过列表长度或低于 0?
例如,如果循环中的索引为 99,则:
print(myList[i+5])
将返回索引错误。
为了澄清,我的意思是这样我可以找出 [i+5] ,就好像列表在循环中一样。
因此,如果您想象索引为 99(再次),我想转到第 4 个索引(在添加 5 并循环回到开头之后)。
最佳答案
最直接的方法是从 5 开始,到列表的长度 - 5 结束,如下所示
for i in range(5, len(myList) - 5):
print(myList[i])
print(myList[i+5])
print(myList[i-5])
或者您可以在访问该位置的元素之前确保索引有效,如下所示
for i in range(100):
print(myList[i])
if i + 5 < len(myList):
print(myList[i+5])
if i - 5 >= 0:
print(myList[i-5])
编辑:如果您喜欢环绕并从另一端开始,一旦到达终点,则可以使用模运算符,如下所示
for i in range(100):
print(myList[i])
print(myList[(i + 5) % len(myList)])
print(myList[(i - 5) % len(myList)])
关于python - 在Python循环中添加数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22816409/