Je pense que c'est ce que vous voulez
nodes = [[Node() for j in range(cols)] for i in range(rows)]
Mais ce n'est pas toujours une bonne pratique pour initialiser les listes. Pour les matrices, cela peut avoir du sens.
Si vous vous demandez: Documentation sur list comprehensions
Code de démonstration:
>>> 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]]
Fondamentalement, une liste de listes. Mais il est * très * probable qu'il n'y ait aucune raison de commencer par initialiser la liste. Voyez si une compréhension de liste fonctionne dans votre cas, sinon écrivez-la en boucle avec 'nodes.append ([])' et 'nodes.extend' ou' nodes.append' dans une autre boucle. – delnan