python - 在Python循环中添加数字

标签 python for-loop indexing

这是我的难题。想象一下,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/

相关文章:

python - 如何计算Python中列表成对比较的元素频率?

python - 如何在 pandas 数据框中使用 bool 索引来表示子字符串关系?

java - boolean 值不会中断语句

sql - 为什么我不能简单地添加包含所有列的索引?

ruby 鞋子 : counting the amount of times a value occurs in an Array

python os.walk 到某个级别

python - Pandas 中的直方图

python - matplotlib 为二元矩阵着色

python - __init__() 获得意外的关键字参数 'conne'

python - 比较 3 个不同列表的位置和元素