如何对循环列表进行切片

new*_*ere 3 python list cycle python-itertools

假设我有如下列表:

lst = [0,10,20,30,40,50,60,70]
Run Code Online (Sandbox Code Playgroud)

我想要按循环顺序从 lst 从index = 5到 的元素。index = 2

lst[5:2]产量[] 我想要的lst[5:2] = [50,60,70,0,10]。有没有简单的库函数可以做到这一点?

moz*_*way 5

如果第二项小于第一项,则只需将切片分成两部分:

lst = [0,10,20,30,40,50,60,70]


def circslice(l, a, b):
    if b>=a:
        return l[a:b]
    else:
        return l[a:]+l[:b]
    
circslice(lst, 5, 2)
Run Code Online (Sandbox Code Playgroud)

输出:[50, 60, 70, 0, 10]