Python中的二维数组

26 投票
8 回答
156700 浏览
提问于 2025-04-15 11:33

在Python中,创建二维数组的最佳方法是什么?

我想存储的数据是这样的:

X , Y , Z

这样我就可以像 X[2],Y[2],Z[2]X[n],Y[n],Z[n] 这样访问数据,其中 n 是一个变量。

我一开始不知道 n 会有多大,所以我想在最后添加值。

8 个回答

9

在Python中,通常会使用列表来实现这个目的。列表可以随意嵌套,这样就可以创建一个二维数组。并且不是每个子列表都需要大小相同,这样就解决了你的另一个问题。可以看看我链接的例子。

11

根据你在做什么,你可能并不真的需要一个二维数组。

大部分时间(大约80%),你只是在处理一些简单的“行状对象”列表,这些对象可能是合适的序列。

myArray = [ ('pi',3.14159,'r',2), ('e',2.71828,'theta',.5) ]

myArray[0][1] == 3.14159
myArray[1][1] == 2.71828

更常见的是,它们可能是某个类的实例,或者是字典、集合,甚至是你在之前的编程语言中没有见过的更有趣的东西。

myArray = [ {'pi':3.1415925,'r':2}, {'e':2.71828,'theta':.5} ]

大约20%的情况下,你会用到一个字典,它的键是成对的。

myArray = { (2009,'aug'):(some,tuple,of,values), (2009,'sep'):(some,other,tuple) }

实际上,你很少需要一个矩阵。

在Python中,有很多种集合类。很有可能你会找到比矩阵更有趣的东西。

22
>>> a = []

>>> for i in xrange(3):
...     a.append([])
...     for j in xrange(3):
...             a[i].append(i+j)
...
>>> a
[[0, 1, 2], [1, 2, 3], [2, 3, 4]]
>>>

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

撰写回答