मूल रूप से, पायथन सूचियाँ बहुत लचीली होती हैं और पूरी तरह से विषम, मनमाने डेटा को धारण कर सकती हैं, और उन्हें लगातार समय में, बहुत कुशलता से जोड़ा जा सकता है । यदि आपको अपनी सूची को समय-कुशलता से और बिना किसी परेशानी के सिकोड़ने और विकसित करने की आवश्यकता है, तो वे जाने का रास्ता हैं। लेकिन वे सी सरणियों की तुलना में बहुत अधिक स्थान का उपयोग करते हैं ।
array.array
प्रकार, दूसरे हाथ पर, बस सी सरणियों पर एक पतली आवरण है। यह केवल सजातीय डेटा, एक ही प्रकार के सभी को पकड़ सकता है, और इसलिए यह केवल sizeof(one object) * length
मेमोरी के बाइट्स का उपयोग करता है । अधिकतर, आपको इसका उपयोग तब करना चाहिए जब आपको किसी एक्सटेंशन या सिस्टम कॉल (उदाहरण के लिए, ioctl
या fctnl
) के लिए C सरणी को उजागर करने की आवश्यकता हो ।
array.array
पायथन 2.x ( ) में एक उत्परिवर्तनीय स्ट्रिंग का प्रतिनिधित्व करने का एक उचित तरीका भी है array('B', bytes)
। हालाँकि, पायथन 2.6+ और 3.x के रूप में एक म्यूट बाइट स्ट्रिंग प्रदान करता हैbytearray
।
हालाँकि, यदि आप संख्यात्मक डेटा के समरूप सरणी पर गणित करना चाहते हैं , तो आप NumPy का उपयोग करके बहुत बेहतर हैं, जो जटिल बहु-आयामी सरणियों पर स्वचालित रूप से संचालन को वेक्टर कर सकते हैं।
एक लंबी कहानी को छोटा करने के लिए : array.array
जब आपको गणित करने के अलावा अन्य कारणों से एक समरूप सी सरणी डेटा की आवश्यकता होती है, तब उपयोगी होता है ।