我需要在矩阵中放入一些从列表中取出的单词,基于它们的索引。我的代码如下:
for i in range(no_of_lines):
for j in range(no_of_lines):
cuv_matrix[i][j] = cuv_list[mat_index[i][j]]
cuv_list是单词列表,mat_index包含与cuv_list
中的索引相对应的索引。cuv_matrix的实际输出如下:
[['x88' 'M' 'x93' ..., '6' '4' '1']
['2' '8' '3' ..., '0' '1' '6']
['0' '3' '2' ..., '.' '0' '0']
...,
['xff' 'xff' 'xff' ..., '' '0' '.']
['0' '' '0' ..., '' '0' '.']
['0' '' '0' ..., '0' '.' '0']]
我声明cuv_matrix的方式:
cuv_matrix = numpy.chararray((no_of_lines, no_of_lines))
我做错了什么,我怎样才能让矩阵的每个元素都是一个词,就像这样?
预期输出:[[movie film ..., actor]
... ...
character seen ..., director]]
之后,我需要从矩阵中使用它们的坐标访问单词。
提前感谢!
如果我没理解错的话,cuv_list就是一个列表,对吧?
所以,你需要一个外部计数器
k = 0
for i in range(no_of_lines):
for j in range(no_of_lines):
cuv_matrix[i][j] = cuv_list[k]
k += 1
再看看你的问题,似乎你还需要一个字典来保存info:
cuv_mat = {}
k = 0
for i in range(no_of_lines):
for j in range(no_of_lines):
cuv_matrix[i][j] = cuv_list[k]
cuv_mat[cuv_list[k]] = (i,j)
k += 1
或者,如果您希望将坐标信息与原始列表保存在一起,并且可能有重复项:
cuv_mat_locations = []
k = 0
for i in range(no_of_lines):
for j in range(no_of_lines):
cuv_matrix[i][j] = cuv_list[k]
cuv_mat_locations.append([cuv_list[k], [i,j]])
k += 1