基于python中列表的值以不同的间隔拼接列表

时间:2015-03-01 22:49:04

标签: python list for-loop

我不会发布一个冗长的例子,而是发布一个关于我想要实现的简化概念。

这是一些不起作用的代码,但这正是我想要做的。我想获取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

谢谢

2 个答案:

答案 0 :(得分:3)

您可以使用以下代码段

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

答案 1 :(得分:2)

您的代码有所不同,但在您的描述之后,应该这样做:

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