在循环python中添加数字

时间:2014-04-02 15:37:45

标签: python for-loop indexing

这是我的难题。想象一下你有一个循环和一个包含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并循环回到开头之后)。

2 个答案:

答案 0 :(得分:2)

直接的方式是从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)])

答案 1 :(得分:1)

您还可以定义一个&#34; safe&#34; print功能:

编辑:澄清后,我将答案修改为循环

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)