当代码抛出IndexError时,我希望数组循环。
这是示例:

a = [1, 2, 3, 4, 5]

a[x] -> output
0 -> 1
1 -> 2
...
4 -> 5
after except IndexError
5 -> 1
6 -> 2
...
9 -> 5
10 -> IndexError (Should be 1)


我的代码可以工作,但是当pos> 9时,它仍会引发IndexError。

pos = 5
try:
    a = [1, 2, 3, 4, 5]
    print(a[pos])
except IndexError:
    print(a[pos - len(a)])

最佳答案

如果需要循环迭代器,请使用itertools.cycle。如果在索引时只需要循环行为,则可以使用基于模的索引。

In [20]: a = [1, 2, 3, 4, 5]

In [21]: pos = 9

In [22]: a[pos % len(a)]
Out[22]: 5

关于python - 出现IndexError时使数组重复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51238307/

10-09 19:47