如何在python中替换列表列表中的列

如何在python中替换列表列表中的列,python,list,numpy,replace,Python,List,Numpy,Replace,我有一个列表,比如 l1=[[1 2] [3 4] [5 6]] 还有另一份名单 l2=[[5] [3] [9]] 我想用l2替换l1第二列中的元素 l1=[[1 5] [3 3] [5 9]] 我试着像l1[:,1]=np.重塑(l2,(3))那样做,但它似乎不起作用,而且在其他方面我只会出错。这应该就行了。确定没有别的问题吗 import numpy as np l1 = np.array([[1, 2], [3, 4], [5,

我有一个列表,比如

l1=[[1 2]
    [3 4]
    [5 6]]
还有另一份名单

l2=[[5]
    [3]
    [9]]
我想用
l2
替换
l1
第二列中的元素

l1=[[1 5]
    [3 3]
    [5 9]]  

我试着像l1[:,1]=np.重塑(l2,(3))那样做,但它似乎不起作用,而且在其他方面我只会出错。

这应该就行了。确定没有别的问题吗

import numpy as np

l1 = np.array([[1, 2], [3, 4], [5, 6]])
l2 = np.array([[5], [3], [9]])

l1[:,1] = l2.reshape(3)
# Or you can do
l1[:,1] = np.reshape(l2, 3)

print(l1)
产出:

[[1 5]
 [3 3]
 [5 9]]

这是另一种方法。这对我有用

将numpy导入为np
l1=np.asanyarray([[1,2],[3,4],[5,6])
l2=np.asanyarray([[5],[3],[9]])
l1[:,1]=l2[:,0]
#输出:[[15]
#          [3 3]
#          [5 9]]
因此,我找到了它(如果将来有人需要它),我将原始列表展平,然后将列表拆分为两个列表,然后在偶数索引处添加元素并对其进行重塑,这似乎是可行的

m1=l1.flatten()
l12=[]
l11=[]
for i in range(0,len(m1)):
   if i % 2==0:
   l12.append(m1[i])
   else:
   l11.append(m1[i])

for x in range(len(l12)):
  l1.insert(2*x+1, l2[x])
print(np.reshape(l12,(3,2)))

你说的“好像不起作用”是什么意思?发生了什么?列表符号中缺少逗号。完全没有发生任何事情。l1打印相同的元素。没有缺少逗号。这是一个列表。您将python列表和numpy数组字符串表示混为一谈