所以我有这个代码,我发现但我无法理解[0]的功能或实际上的任何数字。
a = [[1,2],[3,4]]
b = [[6,3],[5,9]]
t = [[0,0],[0,0]]
for i in range(len(a)):
for j in range(len(b[0])):
for k in range(len(b)):
t[i][j] += a[i][k] * b[k][j]
print t
我对python真的很新,很抱歉,如果这是一个愚蠢的问题。
答案 0 :(得分:0)
当a
是列表时,a[0]
将返回a
的第一个元素(列表从0开始)。
在您的情况下,a[0]=[1,2]
,b[0]=[6,3]
,b[1]=[5,9]
和a[0][0]=1
。
答案 1 :(得分:0)
尝试一些你不理解的东西(并在你去的时候阅读文档)。
鉴于
a = [[1,2],[3,4]]
b = [[6,3],[5,9]]
t = [[0,0],[0,0]]
我们得到了
>>> len(a)
2
所以,a
有两件事,我们可以通过索引到a
来访问
如果我们走得太远,我们就会收到错误:
>>> a[0]
[1, 2]
>>> a[1]
[3, 4]
>>> a[2]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
您询问len(a[0])
,但代码显示为len(b[0])
。
a[0]
是[1, 2]
,所以列出了两件事,实际上是
>>> len(a[0])
2
甚至
>>> len(b[0])
2
您有一些列表清单。索引到它们将为您提供一个列表。
回顾一下,a[0]
是一个列表[1,2]
。我们可以获得其中的任何一个元素,如果我们走得太远,我们会得到一个错误:
>>> a[0][0]
1
>>> a[0][1]
2
>>> a[0][2]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
代码正在进行矩阵乘法,看看你得到了什么t
:
>>> print t
[[16, 21], [38, 45]]
您可以将每个列表列表视为矩阵的一部分,第一个索引给出行,第二个列给出列: