如何根据另一个列表中的长度对列表进行切片?

时间:2016-02-22 09:26:36

标签: python list

我有两个清单:

list1 = [4,6,4] 

list2 = [1,1,1,1,0,0,0,0,0,0,1,1,1,1]

现在我想创建一个新列表,其中包含list2中作为一个侦听器的前四项(因为list1 [0] = 4)。

list3 = [(1,1,1,1),(0,0,0,0,0,0),(1,1,1,1)]

1 个答案:

答案 0 :(得分:5)

您可以根据列表中的值slice列表,例如

list1 = [4, 6, 4]
list2 = [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1]

# Create an iterator for the list
it = iter(list2)

from itertools import islice
print([tuple(islice(it, item)) for item in list1])

<强>输出

[(1, 1, 1, 1), (0, 0, 0, 0, 0, 0), (1, 1, 1, 1)]