2 回答
TA贡献1818条经验 获得超7个赞
您可以从中构建一个迭代器a并使用它的连续切片,itertools.islice以便根据 中子列表的长度使用它c,但只从每个切片中选择第一项:
from itertools import islice
a = [1,1,1,2,2,3,3,3,4]
c = [[1, 3], [7], [2, 3], [4], [7, 8], [9]]
a_ = iter(a)
[[list(islice(a_, len(j)))[0]] + [i for i in j] for j in c]
输出
[[1, 1, 3], [1, 7], [2, 2, 3], [3, 4], [3, 7, 8], [4, 9]]
TA贡献1851条经验 获得超4个赞
另一种方法。基本方式。
#!/bin/python
a = [1,1,1,2,2,3,3,3,4]
b = [1,3,7,2,3,4,7,8,9]
c = [[1, 3], [7], [2, 3], [4], [7, 8], [9]]
#d = [[1, 1, 3], [1, 7], [2 ,2, 3], [3, 4], [3, 7, 8], [4, 9]]
element_count=0
d=[]
for x in c:
print (a[element_count])
print(x)
d.append([a[element_count]]+x)
element_count+=len(x)
添加回答
举报
