2011-06-25 11 views
6

में ऑब्जेक्ट्स की 2 डी सरणी मैं कुछ जावा कोड को पायथन कोड में परिवर्तित कर रहा हूं और मैं जावा में पाइथन में 2 डी सरणी ऑब्जेक्ट्स को कन्वर्ट करने के तरीके पर फंस गया।पाइथन

जावा कोड:

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

मैं कैसे अजगर में ऐसा होगा?

+0

मूल रूप से, सूचियों की एक सूची है। लेकिन यह * बहुत * संभावना है कि सूची शुरू करने के साथ शुरू करने का कोई कारण नहीं है। देखें कि आपके मामले में एक सूची समझ काम करती है, अन्यथा इसे किसी अन्य लूप में 'nodes.append ([])' और 'nodes.extend' या' nodes.append' के साथ लूप के रूप में लिखें। – delnan

उत्तर

10

मुझे लगता है कि आप क्या चाहते हैं

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

है लेकिन यह हमेशा सूचियों प्रारंभ करने में एक अच्छा अभ्यास नहीं है। Matrices के लिए यह समझ में आता है।

आप सोच तो रहे हैं: प्रलेखन के बारे में 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]] 
+0

उत्सुक अगर आप वहां [] भूल गए हैं? – nobody

+0

@ नोबॉडी नो, क्यों? – JBernardo

+0

यह मजाकिया लग रहा है; मुझे लगता है कि यह कुछ ऐसा होगा: nodes = [[नोड() जे श्रेणी में (कोल्स)], [मैं रेंज (पंक्तियों) में]] – nobody

0

अजगर वास्तव में does not 2 डी सरणियों है। यहाँ एक बेहतर explenation

Its does lists instead