在循环python中添加数字

在循环python中添加数字,python,for-loop,indexing,Python,For Loop,Indexing,这是我的难题。假设您有一个循环和一个包含100个python成员的列表,如下所示: 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]是什么,

这是我的难题。假设您有一个循环和一个包含100个python成员的列表,如下所示:

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(再次),我想转到第四个索引(在添加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)])
或者,您可以在访问该位置的元素之前确保索引有效,如下所示

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)])
您还可以定义“安全”打印功能:

编辑:在您的澄清之后,我将我的回答修改为循环回答

def safe_print(mylist, myindex):
    print mylist[myindex % len(mylist)]

myList=range(100)

for i in range(100):
    safe_print(myList, i)
    safe_print(myList, i+5)
    safe_print(myList, i-5)

5
开始,在长度-5之前结束?我应该把这一点说得更清楚。我用这个游戏循环最后一个像素和开始像素,所以我希望能够将索引移到列表末尾,然后重新开始。谢谢。这正是我需要的。@user2592835酷:)如果你觉得我的答案对你有帮助,你可以。