我正在将一些java代码转换为python代码,并最终陷入了如何将Java中的对象的二维数组转换为python。在Python中的二维数组对象
Java代码:
private Node nodes[][] = new Node[rows][columns];
我将如何做到这一点在Python?
我正在将一些java代码转换为python代码,并最终陷入了如何将Java中的对象的二维数组转换为python。在Python中的二维数组对象
Java代码:
private Node nodes[][] = new Node[rows][columns];
我将如何做到这一点在Python?
我想这就是你想要
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]]
Python中并没有真正做二维数组。这里是更好的消除
基本上,列表的列表。但是非常有可能没有理由开始初始化列表。看看列表理解是否适用于你的情况,否则在另一个循环中用'nodes.append([])'和'nodes.extend'或'nodes.append'作为循环来写。 – delnan