将列表拆分为大小递减的子列表

1 python list sublist

假设我有一个列表

list = [0,1,2,3]
Run Code Online (Sandbox Code Playgroud)

我如何将列表分成类似的内容

new_list = [[0,1,2,3],[1,2,3],[2,3],[3]]
Run Code Online (Sandbox Code Playgroud)

我尝试过使用:

def change(list):
    new_list = []
    for i in range(len(list)):
        total += [list:]
    return new_list
Run Code Online (Sandbox Code Playgroud)

但我得到的返回值为

 new_list = [0,1,2,3,1,2,3,2,3,3]
Run Code Online (Sandbox Code Playgroud)

非常感谢您的帮助,谢谢。

mu *_*u 無 5

使用简单的列表理解,它会迭代原始列表的长度。另外,我使用了变量 name lst,因为它list是 python 类型。

干得好:

>>> lst = [0,1,2,3]
>>> [lst[i:] for i in range(len(lst))]
[[0, 1, 2, 3], [1, 2, 3], [2, 3], [3]]
Run Code Online (Sandbox Code Playgroud)