কম্পিউটার

পাইথনে Deque


Deque মূলত স্ট্যাক এবং সারি কাঠামোর একটি সাধারণীকরণ, যেখানে এটি বাম থেকে ডানে শুরু করা হয়। এটি একটি deque তৈরি করতে তালিকা অবজেক্ট ব্যবহার করে৷ এটি পপিং এবং যুক্ত করার জন্য O(1) সময়ের জটিলতা প্রদান করে৷

Deque is একটি স্ট্যান্ডার্ড লাইব্রেরি ক্লাস, যা সংগ্রহে অবস্থিত মডিউল।

প্রথমে এটি ব্যবহার করার জন্য আমাদের এটি সংগ্রহের স্ট্যান্ডার্ড লাইব্রেরি মডিউল আমদানি করতে হবে৷

আমদানি সংগ্রহ

এই বিভাগে আমরা Deque ক্লাসের কিছু ফাংশন দেখব

Deque-এ সংযুক্ত ফাংশনগুলি

দুটি ভিন্ন ধরনের পরিশিষ্ট আছে। সারির ডান প্রান্তে উপাদান যোগ করতে append() পদ্ধতি ব্যবহার করা হয় এবং সারির বাম দিকে উপাদান যুক্ত করতে appendleft() পদ্ধতি ব্যবহার করা হয়।

উদাহরণ কোড

col# হিসাবে সংগ্রহ আমদানি করুন firstmy_deque =col.deque('124dfre') প্রিন্ট ('Dequeue:' + str(my_deque)) #এ সারিতে কিছু উপাদান ঢোকান 'x') my_deque.appendleft('B') প্রিন্ট('অ্যাপেন্ড করার পর ডিক্যু:' + str(my_deque))

আউটপুট

Dequeue:deque(['1', '2', '4', 'd', 'f', 'r', 'e'])সংযোজনের পর Dequeue:deque(['B', '1) ', '2', '4', 'd', 'f', 'r', 'e', ​​'x'])

Deque-এ পপিং ফাংশন

যুক্ত করার মতো, দুটি ভিন্ন ধরণের পপ ফাংশন রয়েছে। pop() পদ্ধতিটি কিউ থেকে সবচেয়ে ডানদিকের উপাদানটি সরাতে এবং ফেরাতে ব্যবহৃত হয় এবং popleft() পদ্ধতিটি সারির সবচেয়ে বাম উপাদানটিকে সরাতে এবং ফেরাতে ব্যবহৃত হয়।

উদাহরণ কোড

col# হিসাবে সংগ্রহ আমদানি করুন firstmy_deque =col.deque('124dfre') প্রিন্ট ('Dequeue:' + str(my_deque)) # ডান এবং বাম আইটেম থেকে আইটেম মুছুন =my_deque.pop( ) প্রিন্ট('পপড আইটেম:' + str(আইটেম)) আইটেম =my_deque.popleft() প্রিন্ট('পপড আইটেম:' + str(আইটেম))প্রিন্ট ('পপ অপারেশনের পরে ডিক্যু:' + str(my_deque)) 

আউটপুট

Dequeue:deque(['1', '2', '4', 'd', 'f', 'r', 'e'])Popped Item:ePopped Item:1Dequeue after pop operations:deque( ['2', '4', 'd', 'f', 'r'])

Deque-এ আইটেম সম্পর্কিত ফাংশন

Deque এর কিছু ফাংশন আইটেম সম্পর্কিত তথ্য পেতে ব্যবহৃত হয়। ইনডেক্স(), কাউন্ট() ইত্যাদির মত কিছু ফাংশন আছে। ইনডেক্স মেথড ব্যবহার করা হয় কোন উপাদানের প্রথম ঘটনার সূচক পেতে। যখন উপাদানটির সাথে কোন যুক্তি পাস করা হয় না, তখন এটি সম্পূর্ণ তালিকাটি বেছে নেবে, যখন একটি নির্দিষ্ট সীমা নির্দিষ্ট করা হয়, এটি সেই সীমাতে সূচকটি পরীক্ষা করে। অন্যদিকে count() পদ্ধতিটি Deque এ একটি আইটেমের ফ্রিকোয়েন্সি গণনা করে।

উদাহরণ কোড

সংগ্রহগুলিকে col# হিসাবে আমদানি করুন firstmy_deque =col.deque('AABCDDEFD') মুদ্রণে সারিতে কিছু উপাদান ঢোকান('Dequeue:' + str(my_deque)) #D প্রিন্টের সূচক খুঁজুন ' + str(my_deque.index('D')))প্রিন্ট('5 থেকে 8 পরিসরে D-এর সূচক হল:' + str(my_deque.index('D', 5, 8)))# এর সংখ্যা গণনা করুন ঘটনা প্রিন্ট('A-এর ঘটনা:' + str(my_deque.count('A'))))মুদ্রণ('D-এর ঘটনা:' + str(my_deque.count('D')))

আউটপুট

Dequeue:deque(['A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D'])D এর সূচক:4 সূচক 5 থেকে 8 রেঞ্জের মধ্যে D হল:5 A-এর ঘটনা:2 D-এর ঘটনা:3

Deque এ সন্নিবেশ() এবং রিমুভ() ফাংশন

আমরা ইতিমধ্যেই উপাদানগুলি সন্নিবেশ করা এবং মুছে ফেলার জন্য Deque-এ অ্যাপেন্ড এবং পপ ফাংশন দেখেছি। সন্নিবেশ এবং মুছে ফেলার সাথে সম্পর্কিত আরও দুটি পদ্ধতি রয়েছে। সন্নিবেশ() পদ্ধতিটি একটি সংখ্যা সন্নিবেশ করতে ব্যবহৃত হয়। এই ক্ষেত্রে আমরা সন্নিবেশ করার জন্য সূচক প্রদান করতে পারি। তাই একটি নির্দিষ্ট স্থানে, আইটেম সন্নিবেশ করা যেতে পারে. এবং রিমুভ() পদ্ধতিটি একটি উপাদানের প্রথম উপস্থিতি অপসারণ করতে ব্যবহৃত হয়।

উদাহরণ কোড

col# হিসেবে সংগ্রহ আমদানি করুন firstmy_deque =col.deque('AABCDDEFD')প্রিন্ট('ডিক্যু:' + str(my_deque))#5, 7 যথাক্রমে my_deque এ সারিতে কিছু উপাদান ঢোকান .insert(5, 'G')my_deque.insert(7, 'H')print('Dequeue after inserting:' + str(my_deque))#Dmy_deque.remove('D')print(' অক্ষরের প্রথম উপস্থিতি মুছুন অপসারণের পর ডিকিউ:' + str(my_deque))

আউটপুট

Dequeue:deque(['A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D']) সন্নিবেশ করার পরে Dequeue:deque (['A', 'A', 'B', 'C', 'D', 'G', 'D', 'H', 'E', 'F', 'D']) অপসারণের পর ডিকিউ :deque(['A', 'A', 'B', 'C', 'G', 'D', 'H', 'E', 'F', 'D'])

Deque-এ ফাংশন প্রসারিত করা

প্রসারিত ফাংশন Deque এ একাধিক উপাদান যোগ করতে ব্যবহৃত হয়। আমরা একাধিক মান প্রদান করতে তালিকা, tuples মত সংগ্রহ ব্যবহার করতে পারি। প্রসারিত ফাংশন দুই ধরনের আছে. এক্সটেন্ড() পদ্ধতিটি ডানদিকে উপাদান যোগ করতে ব্যবহৃত হয়, এটি পুনরাবৃত্তিমূলক পরিশিষ্ট() ফাংশনের অনুরূপ। এবং এক্সটেন্ডলেফ্ট() পদ্ধতিটি বাম দিকে উপাদান যোগ করতে ব্যবহৃত হয়, এটি পুনরাবৃত্তিমূলক অ্যাপেন্ডলেফট() ফাংশনের অনুরূপ।

উদাহরণ কোড

সংগ্রহগুলিকে col# হিসাবে আমদানি করুন firstmy_deque =col.deque('AABCDDEFD')প্রিন্ট('ডিক্যু:' + str(my_deque))#এ সারিতে কিছু উপাদান ঢোকান #এ 1, 3, 5, 7 যোগ করে প্রসারিত করুন ডানদিকে এবং x, y, z-এ leftmy_deque.extend([1, 3, 5, 7])my_deque.extendleft(['x', 'y', 'z'])প্রিন্ট ('প্রসারণের পরে ডিকিউ:' + str(my_deque))

আউটপুট

Dequeue:deque(['A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D']) Dequeue after Extending:deque (['z', 'y', 'x', 'A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D' 1, 3, 5, 7])

ডিক-এ ফাংশন উল্টানো এবং ঘোরানো

আমরা reverse() পদ্ধতি ব্যবহার করে dequeuer এর ক্রম বিপরীত করতে পারি। rotate() নামে আরেকটি পদ্ধতি আছে। ঘূর্ণন পদ্ধতি ব্যবহার করে, আর্গুমেন্ট হিসাবে নির্দিষ্ট নম্বর দিয়ে deque ঘোরানো যেতে পারে। আর্গুমেন্টটি ইতিবাচক হলে, এটি ডানদিকে ঘোরে এবং নেতিবাচক সংখ্যার জন্য এটিকে বামে ঘোরানো হবে৷

উদাহরণ কোড

col# হিসেবে সংগ্রহ আমদানি করুন firstmy_deque =col.deque('AABCDDEFD')প্রিন্ট('ডিক্যু:' + str(my_deque))my_deque.reverse()print('deque after Reversing:' এ সারিতে কিছু উপাদান প্রবেশ করান + str(my_deque))#ডানদিকে ঘোরান, 3টি উপাদানmy_deque.rotate(3)print('Deque after rotating:' + str(my_deque))

আউটপুট

Dequeue:deque(['A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D']) Deque after Reversing:deque (['D', 'F', 'E', 'D', 'D', 'C', 'B', 'A', 'A']) ঘূর্ণনের পরে Deque:deque(['B', 'A', 'A', 'D', 'F', 'E', 'D', 'D', 'C'])

  1. issuperset() পাইথনে

  2. পাইথনে কুইন

  3. পাইথনে Deque

  4. পাইথন কন্টেইনার ডেটাটাইপ