सी/सी++, जावा आदि में ऐरे एक बहुत लोकप्रिय डेटा संरचना है। इन भाषाओं में ऐरे को समान डेटा प्रकार के एक से अधिक तत्वों के संग्रह के रूप में परिभाषित किया गया है। पायथन में सरणी के बराबर कोई अंतर्निहित नहीं है। यह सूची के साथ-साथ Tuple तत्वों का एक संग्रह है लेकिन वे विभिन्न प्रकार के हो सकते हैं।
पायथन का सरणी मॉड्यूल सी प्रकार सरणी का अनुकरण करता है। मॉड्यूल 'सरणी' वर्ग को परिभाषित करता है। निम्नलिखित कंस्ट्रक्टर एक ऐरे ऑब्जेक्ट बनाता है:
array(typecode, initializer)
टाइपकोड तर्क सरणी के प्रकार को निर्धारित करता है। प्रारंभकर्ता मिलान प्रकार के सभी तत्वों के साथ एक अनुक्रम होना चाहिए।
निम्नलिखित कथन एक पूर्णांक सरणी वस्तु बनाता है:
>>> import array >>> arr = array.array('i', range(5)) >>> arr array('i', [0, 1, 2, 3, 4]) >>> type(arr) <class 'array.array'> >>> array.typecodes 'bBuhHiIlLqQfd'
सरणी मॉड्यूल टाइपकोड विशेषता को परिभाषित करता है जो एक स्ट्रिंग देता है। स्ट्रिंग में प्रत्येक वर्ण एक प्रकार के कोड का प्रतिनिधित्व करता है जो C प्रकार और समकक्ष पायथन प्रकार को दर्शाता है:
कोड टाइप करें | <वें शैली="पाठ्य-संरेखण:केंद्र;">सी प्रकारवें>पायथन प्रकार | |
---|---|---|
'b' | हस्ताक्षरित चार | int |
'B' | अहस्ताक्षरित चार | int |
'u' | Py_UNICODE | यूनिकोड कैरेक्टर |
'h' | संक्षिप्त हस्ताक्षरित | int |
'H' | अहस्ताक्षरित संक्षिप्त | int |
'i' | हस्ताक्षरित int | int |
'I' | अहस्ताक्षरित int | int |
'l' | लंबे समय तक हस्ताक्षरित | int |
'L' | अहस्ताक्षरित लंबा | int |
'q' | लंबे समय तक हस्ताक्षरित | int |
'Q' | अहस्ताक्षरित लंबा लंबा | int |
'f' | फ्लोट | फ्लोट |
'd' | डबल | फ्लोट |
प्रारंभकर्ता तर्क वस्तु की तरह बाइट हो सकता है। निम्नलिखित उदाहरण स्ट्रिंग के बाइट प्रतिनिधित्व से एक सरणी बनाता है।
>>> arr1 = array.array('b', b'Hello') >>> arr1 array('b', [72, 101, 108, 108, 111])
सरणी वर्ग निम्नलिखित विधियों को परिभाषित करता है:
array.buffer_info()
यह विधि एक टपल (पता, लंबाई) लौटाती है जो वर्तमान मेमोरी एड्रेस और सरणी की सामग्री को रखने के लिए उपयोग किए जाने वाले बफर के तत्वों में लंबाई देती है।
>>> arr = array.array('i', [0, 1, 2, 3, 4]) >>> arr.buffer_info() (2201141755144, 5)
गिनती ()
यह विधि सरणी में कुछ तत्वों की घटनाओं की संख्या लौटाती है।
>>> arr = array.array('i', [0, 1, 2, 3, 4]) >>> arr.count(2) 1
विस्तार()
यह विधि वस्तुओं को पुनरावर्तनीय से सरणी के अंत तक जोड़ती है या पुनरावर्तनीय जिसमें बिल्कुल एक ही प्रकार का कोड होना चाहिए; यदि नहीं, तो TypeError उठाया जाएगा।
>>> arr = array.array('i', [0, 1, 2, 3, 4]) >>> arr1 = array.array('i',[10,20,30]) >>> arr.extend(arr1) >>> arr array('i', [0, 1, 2, 3, 4, 10, 20, 30])
फ़ाइल से()
यह विधि फ़ाइल ऑब्जेक्ट से n आइटम (मशीन मान के रूप में) पढ़ती है और एक सरणी में जुड़ जाती है।
निम्नलिखित उदाहरण में, हम पहले एक फ़ाइल को बाइनरी राइट मोड में खोलते हैं।
>>> file = open('test.txt','wb') >>> file.write(b'Hello Python') 12 >>> file.close()
अब हम इस फ़ाइल का उपयोग इसके डेटा को एरे ऑब्जेक्ट में जोड़ने के लिए करते हैं।
>>> a = array.array('i') >>> file = open('test.txt','rb') >>> a.fromfile(file,file.tell()) >>> a array('i', [1819043144, 2035294319, 1852794996])
जोड़ें ()
यह विधि सरणी के अंत में एक नया आइटम जोड़ती है
सूची से ()
यह विधि सूची से वस्तुओं को सरणी में जोड़ती है। यह सूची में x के बराबर है:a.append(x)
>>> a = array.array('i') >>> a.append(10) >>> a array('i', [10]) >>> num = [20,30,40,50] >>> a.fromlist(num) >>> a array('i', [10, 20, 30, 40, 50])
सम्मिलित करें ()
निर्दिष्ट स्थान से पहले सरणी में एक नया आइटम डालें
>>> a = array.array('i', [10, 20, 30, 40, 50]) >>> a.insert(2,25) >>> a array('i', [10, 20, 25, 30, 40, 50])
पॉप ()
यह विधि आइटम को सरणी से हटाने के बाद दिए गए इंडेक्स पर लौटाती है।
>>> a = array.array('i', [10, 20, 30, 40, 50]) >>> x = a.pop(2) >>> x 30 >>> a array('i', [10, 20, 40, 50])
निकालें ()
यह विधि सरणी से दिए गए आइटम की पहली घटना को हटा देती है।
>>> a = array.array('i', [10, 20, 30, 40, 50]) >>> a.remove(30) >>> a array('i', [10, 20, 40, 50])
टोफाइल ()
यह विधि लिखने की अनुमति सक्षम होने पर फ़ाइल ऑब्जेक्ट में सभी आइटम लिखती है।
>>> a = array.array('i', [10, 20, 30, 40, 50]) >>> file = open("test.txt","wb") >>> a.tofile(file) >>> file.close() >>> file = open("test.txt","rb") >>> file.read() b'\n\x00\x00\x00\x14\x00\x00\x00\x1e\x00\x00\x00(\x00\x00\x002\x00\x00\x00'