嵌套列表及其索引调用

时间:2014-10-24 17:50:28

标签: python

我想知道如何为另一个列表中的列表中的特定索引分配值。例如:

列表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完成的。

2 个答案:

答案 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