根据python中一个列表的值,以不同的间隔拼接一个列表

Splicing a list at different intervals based on a value of a list in python

我不会 post 一个冗长的例子,而是 post 我想要实现的目标的简化想法。

这段代码有点行不通,但这是我想做的。我想取 list1 的最后 4 个值并将它们附加到一个新列表,然后取最后 3 个值并将它们附加到同一个列表,然后取最后 2 个值并将它们附加到同一个列表。

基本上print list2会给出[[1,2,3,4],[2,3,4],[3,4]]

这是代码;

def test():
    list1 = range(5)
    list2 = []
    q=[2,4,6]
    j=0
    for j in range(len(q)):
        list2.append(list1[(q[j]*0.5):])
    print list2

谢谢

您可以使用以下代码片段

list2 = [list1[-i:] for i in range(4,1,-1)]

例如

>>> list1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list2 = [list1[-i:] for i in range(4,1,-1)]    
>>> list2
[[6, 7, 8, 9], [7, 8, 9], [8, 9]]

您的代码做了一些不同的事情,但根据您的描述,应该这样做:

for l in range(len(list1), 0, -1):
   list2.append(list1[-l:])