我正在尝试填充i x j矩阵的值,其中每个单元格必须具有为其分配的值[,]。
我尝试了很多事情。例如,我尝试过的第一个单元格
F[0][0]=[None,0]
和
F[0][0].append=[None,0]
和
F[0][0].append(None,0)
但是单元格仍然是[]。我以为我一定是在犯一个愚蠢的错误,但是请您帮忙
答案 0 :(得分:0)
是否有任何理由不在您的代码中使用numpy.array
?您可以像这样初始化(i,j)矩阵(例如,假设i = 2和j = 3):
import numpy as np
F = np.zeros((2,3)) # initializes the matrix (fill it with 0)
然后,如果您想填充其第一行(例如,有意义的python索引从0开始):
F[0,:] = [2,None,6]
>> array([[ 2., nan, 6.],
[ 0., 0., 0.]])
对于速度来说,正确初始化矩阵总是更好的方法,但是如果您需要添加一行,还可以使用numpy.append
方法(numpy.append):
np.append(F,[[5,-1,3]],axis=0) # axis=0 specifies that you want to add a row
>> array([[ 2., nan, 6.],
[ 0., 0., 0.],
[ 5., -1., 3.]])
对于向量和矩阵,numpy
比嵌入列表要方便得多。
答案 1 :(得分:0)
如果您真的想使用初始化的嵌入列表,我想您可以使用此方法:
F = [[None]*3]*2 # initializes your 2 lines and 3 colomns list, if needed
>> [[None, None, None], [None, None, None]]
F[1] = [0,None,2,3] # fills your second line (embeded list 1)
>> [[None, None, None], [0, None, 2, 3]]
F[0] = [5] # erases and changes your first line (embeded list 0)
>> [[5], [0, None, 2, 3]]
F.append([1,-1,None]) # adds a new list (which will be the embeded list 2)
>> [[5], [0, None, 2, 3], [1, -1, None]]
鉴于您的帖子,它似乎涵盖了您要实现的目标。请注意,如果您主要通过F=[[]]
定义列表,那么您将只能访问F[0]
,并且要添加另一个嵌入列表,则需要使用list.append。