我想知道如何为另一个列表中的列表中的特定索引分配值。例如:
列表parentList
for i in range(0,rows, 1):
parentList[i] = []
for j in range(0,cols,1):
parentList[i[j]] = 0
不确定这是否是正确的分配语法。
我知道我可以做.append,但我需要为我的问题做的是创建一个稀疏矩阵,所以除了用户在表单中指定的值外,一切都应该为0
(row) (col) (value)
。
所以我认为使用列表的索引会有助于分配。如果有更好的方法,请告诉我!
编辑:这是正在做的事情的一个例子
输入:
1 2 2
1 3 3
2 1 4
3 3 5
0 0 0
1 3 7
2 2 8
3 2 9
3 3 6
0 0 0
输入中的第一个矩阵是:
0 2 3
4 0 0
0 0 5
第二个矩阵是:
0 0 7
0 8 0
0 9 6
他们的产品是:
0 43 18
0 0 28
0 45 30
所以输出应该是:
1 2 43
1 3 18
2 3 28
3 2 45
3 3 30
0 0 0
我必须使用一维链接列表来代表我的代码,所有输入和输出都是通过Python Shell完成的。
答案 0 :(得分:0)
使用numpy数组很容易:
import numpy as np
a=np.empty((3,3))
for i in range(a.shape[0]):
for j in range(a.shape[1]):
a[i][j]=0
>>> a
array([[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]])
答案 1 :(得分:0)
Python列表并不稀疏 - 但还有其他类似numpy和scipy的软件包提供它们。如果您的数据集不是那么大而且您可以只预填一个列表,那么就可以了:
rows = 100
cols = 13
l = [[0]*cols for _ in rows]
[0]*cols
创建一个用零填充的内部列表,[[0]*cols for _ in rows]
重复该操作以获得所需的行数。
之后,您将解决个别单元格,如
l[2][3] = 111