অ্যারে হল C/C++, Java ইত্যাদিতে একটি খুব জনপ্রিয় ডেটা স্ট্রাকচার। এই ভাষাগুলিতে অ্যারেকে একই ধরনের ডেটা টাইপের একাধিক উপাদানের সংগ্রহ হিসাবে সংজ্ঞায়িত করা হয়। পাইথনের কোনো বিল্ট-ইন সমতুল্য অ্যারের নেই। এটির তালিকার পাশাপাশি 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]) সংযোজন()
এই পদ্ধতিটি অ্যারের শেষে একটি নতুন আইটেম যুক্ত করে
fromlist()
এই পদ্ধতিটি তালিকা থেকে অ্যারেতে আইটেম যুক্ত করে। এটি তালিকায় 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]) tofile()
এই পদ্ধতিতে লেখার অনুমতি সক্রিয় থাকা অবস্থায় ফাইল অবজেক্টে সমস্ত আইটেম লিখুন।
>>> 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'