Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在for循环中添加两个列表的相同索引值_Python_Numpy_For Loop - Fatal编程技术网

Python 在for循环中添加两个列表的相同索引值

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]

是否有一种方法可以将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]]

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)