根据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:])
我不会 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:])