পাইথন প্রোগ্রামিং ভাষার চারটি সংগ্রহের ডেটা টাইপ রয়েছে- তালিকা , tuple, সেট এবং । কিন্তু সংগ্রহ হিসাবে পরিচিত একটি অন্তর্নির্মিত মডিউলও আসে যার মধ্যে রয়েছে বিশেষত ডেটা স্ট্রাকচার যা মূলত চারটি ডেটা ধরণের ত্রুটিগুলি পূরণ করে। এই ব্লগে, আমরা সেই সমস্ত বিশেষায়িত ডেটা স্ট্রাকচারের বিশদ বিবরণ দিয়ে যাব। এই ব্লগে নিচে সম্পর্কিত বিষয়গুলি নিম্নরূপ:
পাইথনে সংগ্রহগুলি কী কী?
পাইথনের সংগ্রহগুলি মূলত ধারক ডেটা ধরণের হয়, যথা তালিকাগুলি, সেট, টিপলস, অভিধান। ঘোষণা এবং ব্যবহারের ভিত্তিতে তাদের আলাদা আলাদা বৈশিষ্ট্য রয়েছে।
বর্গাকার বন্ধনীগুলিতে একটি তালিকা ঘোষণা করা হয়, এটি পরিবর্তনযোগ্য, ডুপ্লিকেট মান সংরক্ষণ করে এবং সূচিপত্র ব্যবহার করে উপাদানগুলি অ্যাক্সেস করা যায়।
একটি টিউপল অর্ডার করা হয় এবং প্রকৃতিতে অপরিবর্তনীয়, যদিও ডুপ্লিকেট এন্ট্রিগুলি একটি টিপলের ভিতরে থাকতে পারে।
একটি সেট বেনারমুক্ত এবং বর্গাকার বন্ধনীগুলিতে ঘোষণা করা হয়। এটি সূচিযুক্ত নয় এবং এর সাথে সদৃশ এন্ট্রিও নেই।
একটি অভিধানের মূল মান জোড়া রয়েছে এবং এটি প্রকৃতির পরিবর্তনীয়। আমরা অভিধান ঘোষণার জন্য বর্গাকার বন্ধনী ব্যবহার করি।
এগুলি পাইথনের সাধারণ উদ্দেশ্য অন্তর্নির্মিত ধারক ডেটা ধরণের types তবে যেমনটি আমরা সবাই জানি, অজগরের কাছে সবসময় কিছু বাড়তি অফার থাকে। এটি সংগ্রহে নামে একটি অজগর মডিউল নিয়ে আসে যা বিশেষত ডেটা স্ট্রাকচার রয়েছে।
বিশেষ সংগ্রহের ডেটা স্ট্রাকচারস
সংগ্রহ অজগর মধ্যে মডিউল বিশেষায়িত ডেটা স্ট্রাকচার প্রয়োগ করে যা পাইথনের অন্তর্নির্মিত ধারক ডেটা ধরণের বিকল্প সরবরাহ করে। সংগ্রহের মডিউলে বিশিষ্ট ডেটা স্ট্রাকচারগুলি নিম্নরূপ।
- নামযুক্ত ()
- এবং
- চেইনম্যাপ
- কাউন্টার
- অর্ডারডিক্ট
- ডিফল্টডিক্ট
- ইউজারডিক্ট
- ব্যবহারকারীর তালিকা
- ইউজারস্ট্রিং
নামযুক্ত ()
এটি নামযুক্ত এন্ট্রি সহ একটি টুপল ফেরত দেয়, যার অর্থ টিপলটিতে প্রতিটি মানের জন্য একটি নাম নির্ধারিত থাকবে। এটি সূচকের মানগুলি ব্যবহার করে উপাদানগুলিতে অ্যাক্সেস করার সমস্যাটি অতিক্রম করে। নেমেডটুপল () দিয়ে এই মানগুলি অ্যাক্সেস করা সহজ হয়ে যায়, যেহেতু নির্দিষ্ট উপাদানগুলি পেতে আপনাকে সূচীর মানগুলি মনে রাখতে হবে না।
কিভাবে এটা কাজ করে?
প্রথমত, আপনাকে অবশ্যই সংগ্রহগুলি মডিউল আমদানি করতে হবে, এটির জন্য ইনস্টলেশন প্রয়োজন হয় না।
সংগ্রহ থেকে আমদানি নামপত্রে
আপনি কীভাবে নেমটিপল ব্যবহার করতে পারেন তা বুঝতে নীচের কোডটি দেখুন।
a = নামডটপল ('পাঠ্যক্রম', 'নাম, প্রযুক্তি') s = a ('তথ্য বিজ্ঞান', 'পাইথন') প্রিন্ট (গুলি) # আউটপুটটি কোর্স হবে (নাম = 'পাইথন', টেক = 'পাইথন')
কীভাবে একটি তালিকা ব্যবহার করে একটি নেমটুপল তৈরি করবেন?
s._make (['ডেটা সায়েন্স', 'পাইথন']) # আউটপুট আগের মতোই থাকবে।
এবং
'ডেক' হিসাবে ডেক হিসাবে উচ্চারণ করা সহজেই সন্নিবেশ এবং মুছে ফেলার জন্য একটি অনুকূলিত তালিকা list
কিভাবে এটা কাজ করে?
সংগ্রহ থেকে আমদানি করা ডেক a কে [['d', 'ইউ', 'আর', 'ই', 'কে'] এ 1 = ডেক (এ) প্রিন্ট (এ 1) # আউটপুটটি দর্শনীয় হবে ([[' d ',' আপনি ',' আর ',' ই ',' কে '])
এখন কীভাবে আমরা প্রসারণ থেকে আইটেমগুলি সন্নিবেশ করব এবং সরিয়ে দেব তা একবার দেখে নেওয়া যাক।
a1.append ('a') মুদ্রণ (a1) # আউটপুটটি উপযুক্ত হবে ([['d', 'u', 'r', 'e', 'কে', 'a']) a1.appendleft (' e ') মুদ্রণ (ক 1) # আউটপুটটি উপযুক্ত হবে ([' ই ',' ডি ',' ইউ ',' আর ',' ই ',' কে ',' এ '])
যেমনটি স্পষ্ট হওয়া উচিত, কোনও উপাদান সন্নিবেশ করানো ডেকের ব্যবহার করে উন্নত করা হয়, এছাড়াও আপনি উপাদানগুলিও সরাতে পারেন।
a1.pop () মুদ্রণ (a1) # আউটপুটটি deque (['e', 'd', 'u', 'r', 'e', 'k']) a1.popleft () মুদ্রণ (a1) হবে ) # আউটপুটটি উপযুক্ত হবে ([['d', 'ইউ', 'আর', 'ই', 'কে'])
অন্তর্নির্মিত ডেটা ধরণের অনুরূপ, অন্যান্য বেশ কয়েকটি অপারেশন রয়েছে যা আমরা একটি প্রাসঙ্গিকভাবে সম্পাদন করতে পারি। উপাদান গণনা করা বা দ্বিধা পরিষ্কার করা ইত্যাদি
চেইনম্যাপ
এটি শ্রেণীর মতো অভিধান যা একাধিক ম্যাপিংয়ের একক দর্শন করতে সক্ষম। এটি মূলত অন্যান্য বেশ কয়েকটি অভিধানের একটি তালিকা দেয়। ধরুন আপনার কয়েকটি মূল মান সংযোজন সহ দুটি অভিধান রয়েছে, এক্ষেত্রে চ্যানম্যাপ এতে উভয় অভিধানের সাথে একটি একক তালিকা তৈরি করবে।
কিভাবে এটা কাজ করে?
জাভা মধ্যে স্ট্রিং পদ্ধতি
সংগ্রহগুলি থেকে চ্যানম্যাপ a = {1: 'এডুরেকা', 2: 'পাইথন'} বি = {3: 'ডেটা সায়েন্স', 4: 'মেশিন লার্নিং'} সি = চ্যানম্যাপ (এ, খ) প্রিন্ট (সি) # আমদানি করুন আউটপুট হবে চেইনম্যাপ [{1: 'এডুরেকা', 2: 'পাইথন'}, {3: 'ডেটা সায়েন্স', 4: 'মেশিন লার্নিং'}]
উপাদানগুলিতে অ্যাক্সেস বা প্রবেশ করতে আমরা কীগুলি সূচি হিসাবে ব্যবহার করি। তবে চ্যানম্যাপে একটি নতুন অভিধান যুক্ত করতে আমরা নিম্নলিখিত পদ্ধতির ব্যবহার করি।
a1 = {5: 'এআই', 6: 'নিউরাল নেটওয়ার্কগুলি'} c1 = c.new_child (a1) মুদ্রণ (c1) # আউটপুট হবে চ্যানম্যাপ [{1: 'এডুরেকা', 2: 'পাইথন'}, { 3: 'ডেটা সায়েন্স', 4: 'মেশিন লার্নিং'}, {5: 'এআই', 6: 'নিউরাল নেটওয়ার্ক'}]
কাউন্টার
এটি একটি অভিধানের সাবক্লাস যা হ্যাশেবল অবজেক্টগুলি গণনা করতে ব্যবহৃত হয়।
কিভাবে এটা কাজ করে?
সংগ্রহগুলি আমদানি থেকে আমদানি করুন a = [1,1,1,1,2,3,3,4,3,3,4] সি = কাউন্টার (ক) মুদ্রণ (সি) # আউটপুট কাউন্টার = ({1: 4, 2: 1, 3: 4, 4: 2})
একটি অভিধান কাউন্টারে আপনি পরিচালনা করতে পারেন এমন অপারেশনগুলির সাথে আরও 3 টি অপারেশন রয়েছে যা আমরা সম্পাদন করতে পারি।
- উপাদান ফাংশন - এটি কাউন্টারে সমস্ত উপাদান ধারণকারী একটি তালিকা ফেরত দেয়।
- Most_common () - এটি কাউন্টারে প্রতিটি উপাদান গণনা সহ একটি বাছাই করা তালিকা প্রদান করে।
- বিয়োগ () - এটি একটি আর্গুমেন্ট হিসাবে একটি আর্গুমেন্ট হিসাবে লাগে এবং কাউন্টারে উপাদানগুলির গণনা কেটে দেয়।
অর্ডারডিক্ট
এটি একটি অভিধান সাবক্লাস যা এন্ট্রি যুক্ত করা হয়েছিল সেই ক্রমের কথা মনে রাখে। মূলত, আপনি কীটির মান পরিবর্তন করলেও, অভিধানে এটিটি যেভাবে সন্নিবেশ করা হয়েছিল তার কারণে অবস্থানটি পরিবর্তন করা হবে না।
কিভাবে এটা কাজ করে?
সংগ্রহগুলি থেকে অর্ডারডিক্ট অড = অর্ডারডিক্ট () ওড [1] = 'ই' ওড [2] = 'ডি' ওড [3] = 'ইউ' ওড [4] = 'আর' ওড [5] = 'ই' ওড []] = 'কে' থেকে []] = 'এ' মুদ্রণ (থেকে) # আউটপুট অর্ডারডটিক্ট হবে ([১, 'ই'), (২, 'ডি'), (৩, 'ইউ'), (4, 'আর'), (5, 'ই'), (6, 'কে'), (7, 'এ')]
অভিধানে কী মান সন্নিবেশ হয় তা বিবেচনা করে না, অর্ডারডিক্ট এটি যেভাবে সন্নিবেশ করানো হয়েছিল তা মনে রাখে এবং সেই অনুযায়ী আউটপুট পায় gets এমনকি যদি আমরা কীটির মান পরিবর্তন করি। বলি, আমরা কী মানটি 4 থেকে 8 এ পরিবর্তন করি তবে আউটপুটটিতে ক্রম পরিবর্তন হবে না।
ডিফল্টডিক্ট
এটি একটি অভিধান সাবক্লাস যা অনুপস্থিত মান সরবরাহ করার জন্য একটি ফ্যাক্টরি ফাংশন বলে calls সাধারণভাবে, কোনও অভিধানে কোনও অনুপস্থিত কী মানটি বলা হলে এটি কোনও ত্রুটি ফেলে না।
কিভাবে এটা কাজ করে?
সংগ্রহ থেকে আমদানি করুন ডিফল্ট ডিটিক্ট ডি = ডিফল্টডিক্ট (ইনট) # আমাদের পাশাপাশি একটি প্রকার নির্দিষ্ট করতে হবে। d [1] = 'edureka' d [2] = 'পাইথন' প্রিন্ট (d [3]) # এটি কিয়েররের পরিবর্তে 0 হিসাবে আউটপুট দেবে।
ইউজারডিক্ট
এই শ্রেণিটি অভিধান অবজেক্টগুলির চারপাশে মোড়কের কাজ করে। এই শ্রেণীর জন্য প্রয়োজনীয়তা এসেছিল ডেক থেকে সরাসরি সাবক্লাসে। অন্তর্নিহিত অভিধানটি একটি বৈশিষ্ট্যে পরিণত হওয়ায় এই শ্রেণীর সাথে কাজ করা সহজ হয়ে যায়।
শ্রেণি সংকলন.উসর্গডিক্ট ([প্রাথমিকদাতা])
এই শ্রেণিটি একটি অভিধান অনুকরণ করে। উদাহরণের বিষয়বস্তু একটি নিয়মিত অভিধানে রাখা হয় যা ক্লাসের ইউজারডিক্টের ‘ডেটা’ বৈশিষ্ট্য দিয়ে অ্যাক্সেস করা যায়। প্রাথমিক তথ্যগুলির রেফারেন্স রাখা হয় না, এটি অন্য উদ্দেশ্যে ব্যবহৃত হয়।
ব্যবহারকারীর তালিকা
এই শ্রেণিটি তালিকা সামগ্রীর চারপাশে মোড়কের মতো কাজ করে। এটি অন্যান্য তালিকার মতো ক্লাসের মতো একটি দরকারী বেস ক্লাস যা তাদের উত্তরাধিকার সূত্রে উত্তীর্ণ হতে পারে এবং বিদ্যমান পদ্ধতিগুলিকে ওভাররাইড করতে পারে বা আরও কয়েকটি নতুন যুক্ত করতে পারে।
এই শ্রেণীর জন্য প্রয়োজনীয়তাটি তালিকা থেকে সরাসরি সাবক্লাসে এসেছিল। অন্তর্নিহিত তালিকাটি একটি বৈশিষ্ট্যে পরিণত হওয়ায় এই শ্রেণীর সাথে কাজ করা সহজ হয়ে যায়।
শ্রেণি সংগ্রহ.যুগল তালিকা ([তালিকা])
এটি ক্লাস যা একটি তালিকা অনুকরণ করে। উদাহরণের বিষয়বস্তুগুলি একটি প্রথাগত তালিকায় রাখা হয়েছে। তালিকার সাব-ক্লাসগুলি এমন কোনও কনস্ট্রাক্টর অফার করার জন্য নির্ভর করা হয় যা কোনও বা একটিও বিতর্ক সহ কল করা যায়।
এই ব্লগে, আমরা পাইথনের সংগ্রহ মডিউল নিয়ে আসে এমন বিশেষায়িত ডেটা স্ট্রাকচার সম্পর্কে শিখেছি। অপ্টিমাইজেশান উন্নত কর্মক্ষমতা এবং বর্ধিত ফলাফলের দিকে নিয়ে যায়। একই একইভাবে আমাদের নিজের ক্যারিয়ার এবং দক্ষতার ক্ষেত্রে প্রযোজ্য। আপনি যদি নিজের শেখা শুরু করতে এবং প্রোগ্রামিংটি বুঝতে পারার উপায়টি অনুকূল করতে চান তবে এডুরিকার প্রবেশ করুন এবং অজগর দিয়ে অবিরাম সম্ভাবনা প্রকাশ করুন।
কোন প্রশ্ন আছে? তাদের মন্তব্যে উল্লেখ করুন, এবং আমরা যত তাড়াতাড়ি সম্ভব আপনার কাছে ফিরে আসব।