Python 在for循环中添加两个列表的相同索引值
是否有一种方法可以将B的值添加为a中每个列表的最后一个索引号?所以A变成这样:Python 在for循环中添加两个列表的相同索引值,python,numpy,for-loop,Python,Numpy,For Loop,是否有一种方法可以将B的值添加为a中每个列表的最后一个索引号?所以A变成这样: A = [[0,1,3,2,200,250], [1,2,5,3,600,850], [1,3,1,1,100,100], [3,4,4,2,650,900], [2,4,3,2,450,500], [4,5,3,2,500,620], [5,6,2,1,500,600], [4,6,4,2,600,900], [2,3,0,0,0,0]
A = [[0,1,3,2,200,250],
[1,2,5,3,600,850],
[1,3,1,1,100,100],
[3,4,4,2,650,900],
[2,4,3,2,450,500],
[4,5,3,2,500,620],
[5,6,2,1,500,600],
[4,6,4,2,600,900],
[2,3,0,0,0,0]]
B = [4,5,6,7,8,9,10,11,12]
如果我尝试以下方法,我会得到许多组合:
A = [[0,1,3,2,200,250,4],
[1,2,5,3,600,850,5],
[1,3,1,1,100,100,6],
[3,4,4,2,650,900,7],
[2,4,3,2,450,500,8],
[4,5,3,2,500,620,9],
[5,6,2,1,500,600,10],
[4,6,4,2,600,900,11],
[2,3,0,0,0,0,12]]
使用:
或:
使用图书馆:
使用:
或:
使用图书馆:
对于范围内的i(len(A)):
A[i].追加(B[i])
范围内的i(len(A)):
A[i].追加(B[i])
直截了当的列表理解创建一个新列表:
In [53]: import pandas as pd
In [54]: res = pd.concat([pd.DataFrame(A), pd.DataFrame(B)], 1).values.tolist()
In [55]: res
Out[55]:
[[0, 1, 3, 2, 200, 250, 4],
[1, 2, 5, 3, 600, 850, 5],
[1, 3, 1, 1, 100, 100, 6],
[3, 4, 4, 2, 650, 900, 7],
[2, 4, 3, 2, 450, 500, 8],
[4, 5, 3, 2, 500, 620, 9],
[5, 6, 2, 1, 500, 600, 10],
[4, 6, 4, 2, 600, 900, 11],
[2, 3, 0, 0, 0, 0, 12]]
+
是串联列表;唯一的技巧是首先将数值b
值转换为列表
或修改A
本身:
In [123]: C = [a+[b] for a,b in zip(A,B)]
In [124]: C
Out[124]:
[[0, 1, 3, 2, 200, 250, 4],
[1, 2, 5, 3, 600, 850, 5],
[1, 3, 1, 1, 100, 100, 6],
[3, 4, 4, 2, 650, 900, 7],
[2, 4, 3, 2, 450, 500, 8],
[4, 5, 3, 2, 500, 620, 9],
[5, 6, 2, 1, 500, 600, 10],
[4, 6, 4, 2, 600, 900, 11],
[2, 3, 0, 0, 0, 0, 12]]
zip
使一起迭代A
和B
变得容易。对范围内的i(len(a))使用进行迭代也有效。直接列表理解生成一个新列表:
In [53]: import pandas as pd
In [54]: res = pd.concat([pd.DataFrame(A), pd.DataFrame(B)], 1).values.tolist()
In [55]: res
Out[55]:
[[0, 1, 3, 2, 200, 250, 4],
[1, 2, 5, 3, 600, 850, 5],
[1, 3, 1, 1, 100, 100, 6],
[3, 4, 4, 2, 650, 900, 7],
[2, 4, 3, 2, 450, 500, 8],
[4, 5, 3, 2, 500, 620, 9],
[5, 6, 2, 1, 500, 600, 10],
[4, 6, 4, 2, 600, 900, 11],
[2, 3, 0, 0, 0, 0, 12]]
+
是串联列表;唯一的技巧是首先将数值b
值转换为列表
或修改A
本身:
In [123]: C = [a+[b] for a,b in zip(A,B)]
In [124]: C
Out[124]:
[[0, 1, 3, 2, 200, 250, 4],
[1, 2, 5, 3, 600, 850, 5],
[1, 3, 1, 1, 100, 100, 6],
[3, 4, 4, 2, 650, 900, 7],
[2, 4, 3, 2, 450, 500, 8],
[4, 5, 3, 2, 500, 620, 9],
[5, 6, 2, 1, 500, 600, 10],
[4, 6, 4, 2, 600, 900, 11],
[2, 3, 0, 0, 0, 0, 12]]
zip
使一起迭代A
和B
变得容易。对于范围内的i(len(a))
使用进行迭代也有效。因为在问题中,使用沿轴=1的直接连接将产生所需的结果
In [125]: for a, b in zip(A,B): a.append(b)
因为在问题中,使用沿轴=1
的直接连接将产生所需的结果
In [125]: for a, b in zip(A,B): a.append(b)