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)