Python中的2D对象数组

时间:2011-06-25 20:51:14

标签: python object multidimensional-array

我正在将一些java代码转换为python代码,我最终难以理解如何将Java中的2D对象数组转换为python。

Java代码:

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

我将如何在python中执行此操作?

2 个答案:

答案 0 :(得分:12)

我认为这就是你想要的东西

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

但初始化列表并不总是一个好习惯。对于矩阵,它可能是有意义的。

如果您想知道:有关list comprehensions

的文档

演示代码:

>>> 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]]

答案 1 :(得分:0)

Python并不真正做二维数组。这是一个更好的解释

Its does lists instead