Is there a way to cycle through indexes
本问题已经有最佳答案,请猛点这里访问。
1 | list1 = [1,2,3,4] |
如果我有一个以上的
你可以对数学进行如下模块化:
代码:1 2 | list1 = [1, 2, 3, 4] print(list1[4 % len(list1)]) |
结果:
1 | 1 |
你可以实现你自己的类来实现这个。
1 2 3 4 5 6 7 8 | class CyclicList(list): def __getitem__(self, index): index = index % len(self) if isinstance(index, int) else index return super().__getitem__(index) cyclic_list = CyclicList([1, 2, 3, 4]) cyclic_list[4] # 1 |
尤其是这将保留
在您描述的情况下,我自己使用了stephenrauch建议的方法。但是考虑到添加了
它返回一个迭代器,让您以循环的方式永远循环一个iterable。我不知道你原来的问题,但你可能会发现它有用。
1 2 3 4 | import itertools for i in itertools.cycle([1, 2, 3]): # Do something # 1, 2, 3, 1, 2, 3, 1, 2, 3, ... |
不过,要小心出口条件,你可能会发现自己处于一个无止境的循环中。