如何访问二维数组中的元素?

2024-06-07 07:43:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,我想了解如何操作数组元素。 例如,如果我有:

a= ( a11 a12 a13 )  and b = (b11 b12 b13) 
     a21 a22 a23             b21 b22 b23

我在python中定义了它们,例如:

a=[[1,1],[2,1],[3,1]]
b=[[1,2],[2,2],[3,2]]

我看到我不能引用a[1][1],而是引用a[1],这给了我一个[2,1]的结果。 所以,我不知道如何访问这些数组的第二行?那就是a21, a22, a23, b21, b22, b23? 我该怎么做才能把它们乘以c1 = a21*b21, c2 = a22*b22等?


Tags: and元素数组新手b12a13a21b11
3条回答

如果你想用二维数组做很多计算,你应该使用NumPy数组而不是嵌套列表。

对于您的问题,您可以使用:zip(*a)来转置它:

In [55]: a=[[1,1],[2,1],[3,1]]
In [56]: zip(*a)
Out[56]: [(1, 2, 3), (1, 1, 1)]
In [57]: zip(*a)[0]
Out[57]: (1, 2, 3)

似乎在这里起作用:

>>> a=[[1,1],[2,1],[3,1]]
>>> a
[[1, 1], [2, 1], [3, 1]]
>>> a[1]
[2, 1]
>>> a[1][0]
2
>>> a[1][1]
1

如果你有

a=[[1,1],[2,1],[3,1]]
b=[[1,2],[2,2],[3,2]]

那么

a[1][1]

会起作用的。它指向第二列,第二行,就像你想要的那样。

我不知道你做错了什么。

要将第三列中的单元格相乘,只需执行以下操作

c = [a[2][i] * b[2][i] for i in range(len(a[2]))] 

对任何行都有效。

编辑:第一个数字是列,第二个数字是行,使用当前布局。它们都是从0开始编号的。如果你想改变你能做的顺序

a = zip(*a)

或者可以这样创建:

a=[[1, 2, 3], [1, 1, 1]]

相关问题 更多 >

    热门问题