Python中的对象二维数组

7 投票
2 回答
24928 浏览
提问于 2025-04-16 20:17

我正在把一些Java代码转换成Python代码,但我在把Java中的二维对象数组转换成Python时遇到了困难。

Java代码:

private Node nodes[][] = new Node[rows][columns];

我该如何在Python中做到这一点呢?

2 个回答

0

Python其实并不支持二维数组。这里有个更好的解释。

它使用的是列表来代替

13

我觉得这就是你想要的内容。

nodes = [[Node() for j in range(cols)] for i in range(rows)]

不过,初始化列表并不总是一个好的做法。对于矩阵来说,这样做可能是有意义的。

如果你在想:关于 列表推导式 的文档可以参考这里。

示例代码:

>>> class Node:
      def __repr__(self):
        return "Node: %s" % id(self)
>>> cols = 3
>>> rows = 4
>>> nodes = [[Node() for j in range(cols)] for i in range(rows)]
>>> from pprint import pprint
>>> pprint(nodes)
[[Node: 41596976, Node: 41597048, Node: 41596904],
 [Node: 41597120, Node: 41597192, Node: 41597336],
 [Node: 41597552, Node: 41597624, Node: 41597696],
 [Node: 41597768, Node: 41597840, Node: 41597912]]

撰写回答