आपको numpy.zeros
का उपयोग करना चाहिए। यदि यह कोई विकल्प नहीं है, तो आप पहले संस्करण चाहते हैं। दूसरे संस्करण में, यदि आप एक मूल्य बदलने के लिए, इसे कहीं और सूची में बदल जाएगा - उदाहरण के लिए:
>>> a = [[0]*10]*10
>>> a
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
>>> a[0][0] = 1
>>> a
[[1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
इसका कारण यह है (जैसा कि आप अंदर बाहर से अभिव्यक्ति पढ़ने के लिए), आप की एक सूची बना 10 शून्य फिर आप 10 शून्य की प्रारंभिक सूची में 10 संदर्भों की एक सूची बनाते हैं।
ध्यान दें कि:
zeros = [ [0]*M for _ in xrange(N) ]
भी काम करेंगे और यह नेस्टेड सूची समझ से बचा जाता है। यदि numpy
तालिका पर नहीं है, तो यह वह रूप है जिसका मैं उपयोग करूंगा।
यह है कि एक सुविधा के लिए बस numpy उपयोग करने के लिए वास्तव में आवश्यक है के एम एक्स एन सरणी के लिए? पहले संस्करण के लिए +1। – John
@johnthexiii - संभवतः नहीं। लेकिन, यदि ओपी शून्य की 2 डी सरणी चाहता है, तो मैं एक अंग पर बाहर जाने के लिए तैयार हूं और कहूंगा कि ओपी का कोड शायद अन्य स्थानों में भी खराब हो सकता है। – mgilson
मैं सूची को शून्य करने के लिए numpy इंस्टॉल नहीं करूंगा;) बाद में स्पष्टीकरण के लिए धन्यवाद, यह वही था जो मैं ढूंढ रहा था। – yakxxx