循环到开头的 Python 列表

标签 python list

有没有一个Python函数可以将列表循环到开头? 即:

mylist = [3,4,9,2,5,6]
mylist[4:1]
output: [5,6,3]

最佳答案

Python 中没有这样的函数,但作为一种 Pythonic 方式,您可以使用 itertools 中的 cycleislice 函数。模块:

>>> 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/

相关文章:

python - 如何将值列表映射到分类向量

python - Gitlab CI/CD 部署 Django Docker 容器

list - 缺点运算符 "|"在 Erlang

java - 如何确保列表中的项目是连续的?

python - 在列表中查找字符串的索引

c# - 如何在 List<T> 中找到未定义字符串的索引

python - 将列表转为字符串的语义

python - scrapy 从路径运行蜘蛛

python - 这个查询有什么问题?

Python scrapy 请求在跟随链接时不执行回调