我正在将一些java代码转换为python代码,但我最终被如何将java中的2D对象数组转换为python所困扰。
Java代码:
private Node nodes[][] = new Node[rows][columns];
在python中我该如何做到这一点?
我想这就是你想要的
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]]
Python并没有真正做2d数组。这里有一个更好的解释
它列出的是