有没有一个Python函数可以将列表循环到开头? 即:
mylist = [3,4,9,2,5,6]
mylist[4:1]
output: [5,6,3]
最佳答案
Python 中没有这样的函数,但作为一种 Pythonic 方式,您可以使用 itertools
中的 cycle
和 islice
函数。模块:
>>> mylist = [3,4,9,2,5,6]
>>>
>>> from itertools import cycle
>>> from itertools import cycle,islice
>>> c=cycle(mylist)
>>> list(islice(c,4,7))
[5, 6, 3]
您还可以根据您的目标创建自定义函数。例如:
>>> def slicer(li,start,end):
... c=cycle(li)
... if end<start:
... return islice(c,start,end+6)
... else:
... return islice(c,start,end)
...
>>> list(slicer(mylist,4,1))
[5, 6, 3]
>>> list(slicer(mylist,4,2))
[5, 6, 3, 4]
>>> list(slicer(mylist,4,10))
[5, 6, 3, 4, 9, 2]
关于循环到开头的 Python 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31007918/