Python 如何在嵌套列表中添加与另一个列表对应的值?

Python 如何在嵌套列表中添加与另一个列表对应的值?,python,list,iteration,Python,List,Iteration,我正在建立一个线性连接,我有两个列表: a = [1,1,1,2,2,3,3,3,4] b = [1,3,7,2,3,4,7,8,9] a[i]与b[i] 我将b重组为c: c = [[1, 3], [7], [2, 3], [4], [7, 8], [9]] 我试图在c中的每个子列表中添加a的相应值,以获得: d = [[1, 1, 3], [1, 7], [2 ,2, 3], [3, 4], [3, 7, 8], [4, 9]] c的每个子列表中最初在b中的第一个值与a相关,如c[0]

我正在建立一个线性连接,我有两个列表:

a = [1,1,1,2,2,3,3,3,4]
b = [1,3,7,2,3,4,7,8,9]
a[i]
b[i]

我将
b
重组为
c

c = [[1, 3], [7], [2, 3], [4], [7, 8], [9]]
我试图在
c
中的每个子列表中添加
a
的相应值,以获得:

d = [[1, 1, 3], [1, 7], [2 ,2, 3], [3, 4], [3, 7, 8], [4, 9]]
c
的每个子列表中最初在
b
中的第一个值与
a
相关,如
c[0][0]=b[0]
,并将
a[0]
添加到
c[0]
c[1][0]=b[2]
,因此将
a[2]
添加到
c[1]

如果子列表在
c
中,并且子列表的第一个值=
b[i]
,则将
a[i]
添加到每个子列表中


我陷入了这个困境。

您可以从
a
构建一个迭代器,并使用它的连续切片,以便根据
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]
输出


另一种方法。基本方式

#!/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)

你能详细说明你想做什么吗?A和B之间的关系是什么。为什么d只有三个
1
s,而A和B总共有四个?对于
c
中的每个子列表,如果
子列表[0]
=
B[i]
,则将
A[i]
添加到
子列表中。可以吗?
#!/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)