কম্পিউটার

Python Nested Dictionary:A How-to Guide

একটি পাইথন নেস্টেড অভিধান হল অন্য অভিধানের মধ্যে একটি অভিধান। এটি আপনাকে একটি বিদ্যমান অভিধানের মধ্যে কী-মান ম্যাপিং কাঠামো ব্যবহার করে ডেটা সংরক্ষণ করতে দেয়।

আপনি যখন পাইথনে অভিধান নিয়ে কাজ করছেন, তখন আপনি এমন পরিস্থিতির সম্মুখীন হতে পারেন যেখানে একটি অভিধানে অন্য একটি অভিধান রয়েছে।

ডেটার এই গঠনটিকে প্রায়ই নেস্টেড ডিকশনারী, হিসাবে উল্লেখ করা হয় এবং পাইথন কোডে বিস্তৃত সম্ভাব্য ব্যবহারের ক্ষেত্রে রয়েছে।

এই টিউটোরিয়ালটি পাইথন নেস্টেড ডিকশনারির মূল বিষয় নিয়ে আলোচনা করবে। আমরা কয়েকটি উদাহরণের মধ্য দিয়ে হেঁটে যাব যাতে আপনি একটি নেস্টেড অভিধান তৈরি এবং সংশোধন করতে শিখতে পারেন৷

পাইথন অভিধান রিফ্রেশার

অভিধানটি পাইথনের ম্যাপিং ডেটা টাইপ। একটি পাইথন অভিধান বাঁধে—বা মানচিত্র —মূল্যের চাবিকাঠি, এবং ডেটা সংরক্ষণের একটি কার্যকর উপায় প্রদান করে।

যখন একটি কী একটি মানের সাথে ম্যাপ করা হয়, আপনি কীটি উল্লেখ করে সেই মানটিতে সংরক্ষিত ডেটা পুনরুদ্ধার করতে পারেন। সুতরাং, এক অর্থে, কী একটি লেবেলের মতো কাজ করে। স্থানীয় আইসক্রিম স্টোর, দ্য ফ্রোজেন স্পুন-এ বিক্রি হওয়া আইসক্রিমের স্বাদের দাম সংরক্ষণ করে এমন একটি অভিধানের উদাহরণ এখানে দেওয়া হল:

ice_cream_flavors ={ "ভ্যানিলা":0.50, "চকলেট":0.50, "কুকিজ এবং ক্রিম":0.75, "স্ট্রবেরি":0.65, "বাটারড পেকান":0.90}

এই অভিধানে কীগুলি হল আমাদের আইসক্রিমগুলির নাম (যেমন "ভ্যানিলা"), এবং মানগুলি হল প্রতিটি আইসক্রিমের প্রতি স্কুপের দাম৷

পাইথন নেস্টেড অভিধান

পাইথন নেস্টেড অভিধানগুলি একটি অভিধানের ভিতরের অভিধান। এগুলি অন্য অভিধানের মধ্যে অভিধানের ডেটা উপস্থাপন করতে ব্যবহৃত হয়। আপনি একটি অভিধানে যতগুলি চান ততগুলি অভিধানে নেস্ট করতে পারেন৷

81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগদানের পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷

গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় ব্যয় করেছে।

যদি আপনি একটি বড় অভিধানে উপাদান অভিধানের একটি পরিসীমা সঞ্চয় করতে চান তাহলে নেস্টেড অভিধানগুলি দরকারী৷

নেস্টেড অভিধানগুলি কীভাবে কাজ করে তা ব্যাখ্যা করার জন্য আসুন একটি উদাহরণ দিয়ে হেঁটে যাই। ধরুন আমরা একটি অভিধান তৈরি করতে চাই যা দ্য ফ্রোজেন স্পুনে বিক্রি হওয়া আইসক্রিমের প্রতিটি স্বাদ সম্পর্কে অভিধান সংরক্ষণ করে। আমাদের বড় অভিধানে প্রতিটি অভিধানের তালিকা করা উচিত:

  • আইসক্রিমের নাম
  • এর দাম
  • কত পিন্ট স্টকে আছে

এই ডেটা সঞ্চয় করে এমন একটি নেস্টেড অভিধান দেখতে কেমন হবে তা এখানে:

ice_cream_flavors ={ 0:{ "flavor":"Vanilla", "price":0.50, "pints":20 }, 1:{ "flavor":"Chcolate", "price":0.50, "pints" :31 },2:{ "ফ্লেভার":"কুকিজ এবং ক্রিম", "দাম":0.75, "পিন্টস":14 }}

আমাদের কোডে, আমরা ice_cream_flavors নামে একটি বড় অভিধান ঘোষণা করেছি . এই অভিধানে তিনটি অভিধান রয়েছে, যার প্রতিটি আইসক্রিমের একটি নির্দিষ্ট স্বাদের তথ্য সংরক্ষণ করে।

আমরা একটি নেস্টেড অভিধান ব্যবহার না করলে, আমাদের এই অভিধানগুলির প্রতিটিকে আলাদা ভেরিয়েবলে সংরক্ষণ করতে হতো। এটি বিরোধী কারণ প্রতিটি অভিধান আইসক্রিমের স্বাদ সম্পর্কে তথ্য সংরক্ষণ করে৷

একটি নেস্টেড অভিধানে আইটেমগুলি অ্যাক্সেস করুন

একটি নেস্টেড অভিধানে একটি আইটেম অ্যাক্সেস করতে, আমরা ইন্ডেক্সিং সিনট্যাক্স ব্যবহার করতে পারি।

ধরুন আমরা আমাদের অভিধানে সূচক মান 0 সহ আইসক্রিমের দাম পুনরুদ্ধার করতে চাই। আমরা এই কোডটি ব্যবহার করে তা করতে পারি:

ice_cream_flavors ={ 0:{ "flavor":"Vanilla", "price":0.50, "pints":20 }, 1:{ "flavor":"Chcolate", "price":0.50, "pints" :31 },2:{ "ফ্লেভার":"কুকিজ এবং ক্রিম", "দাম":0.75, "পিন্টস":14 }}প্রিন্ট(আইসক্রিম_ফ্লেভারস[0]["দাম"])প্রিন্ট(আইসক্রিম_ফ্লেভারস[0][" স্বাদ"])

আমাদের কোড ফিরে আসে:

0.50 ভ্যানিলা

এই কোডে, আমরা প্রথমে আইটেম কী নির্দিষ্ট করি যার মান আমাদের বড় অভিধানে রয়েছে যা আমরা পুনরুদ্ধার করতে চাই। এই ক্ষেত্রে, আমরা সূচক মান 0 সহ রেকর্ড অ্যাক্সেস করতে চেয়েছিলাম।

তারপর, আমরা আমাদের অভ্যন্তরীণ অভিধানে আইটেমটির নাম উল্লেখ করি যা আমরা পুনরুদ্ধার করতে চাই। এই ক্ষেত্রে, আমরা আমাদের আইসক্রিমের দাম এবং স্বাদ পুনরুদ্ধার করতে চেয়েছিলাম। তাই, আমরা মূল্য নির্দিষ্ট করেছি এবং স্বাদ আমাদের print() উভয়েই বিবৃতি।

নেস্টেড ডিকশনারি পাইথন:এলিমেন্ট যোগ করুন

একটি নেস্টেড অভিধানে একটি উপাদান যোগ করতে, আমরা একই সিনট্যাক্স ব্যবহার করতে পারি যা আমরা একটি আইটেম সংশোধন করতে ব্যবহার করি। একটি নেস্টেড অভিধানে একটি আইটেম যোগ করার জন্য আপনার ব্যবহার করা উচিত এমন কোনো পদ্ধতি নেই৷ আপনাকে অ্যাসাইনমেন্ট অপারেটর ব্যবহার করতে হবে।

একটি আইটেম যোগ করার জন্য সিনট্যাক্স নিম্নরূপ:

dictionary_name[new_key_name] =new_value

ধরুন আমাদের কাছে একটি অভিধান আছে যা বিক্রয়ের জন্য ভ্যানিলা আইসক্রিমের তথ্য সংরক্ষণ করে। আমরা ট্র্যাক করতে চাই আইসক্রিমে ছাড় আছে কিনা। আমরা নিম্নলিখিত কোড ব্যবহার করে এটি করতে পারি:

ice_cream_flavors ={ 0:{ "flavor":"Vanilla", "price":0.50, "pints":20 }, 1:{ "flavor":"Chcolate", "price":0.50, "pints" :31 },2:{ "ফ্লেভার":"কুকিজ এবং ক্রিম", "দাম":0.75, "পিন্টস":14 }}আইসক্রিম_ফ্লেভার[0]["ডিসকাউন্ট"] =ট্রুপ্রিন্ট(আইসক্রিম_ফ্লেভারস[0])

আসুন আমাদের কোড চালাই এবং দেখুন কি হয়:

{'ফ্লেভার':'ভ্যানিলা', 'দাম':0.5, 'পিন্ট':20, 'ডিসকাউন্ট':সত্য

আমাদের অভিধান পাইথন ভেরিয়েবল "আইসক্রিম_ফ্লেভারস" এ সংরক্ষিত আছে।

আমরা ডিসকাউন্ট নামে একটি কী যোগ করেছি অভিধানে। এই কীটির ইনডেক্স পজিশন হল 0। আমরা এই কীটির মান True-এ সেট করেছি। তারপর, আমরা আমাদের ice_cream_flavors-এ সূচক মান 0 সহ অভিধানটি মুদ্রণ করেছি নেস্টেড অভিধান। এটি দেখায় যে আমাদের ছাড় কী যোগ করা হয়েছে।

বিদ্যমান অভিধানে একটি উপাদান আপডেট করতে আমরা এই সিনট্যাক্স ব্যবহার করতে পারি। ধরুন আমরা আমাদের চকোলেট আইসক্রিমের দাম প্রতি স্কুপ $0.45 করতে চাই। আমরা এই কোডটি ব্যবহার করে তা করতে পারি:

ice_cream_flavors ={ 0:{ "flavor":"Vanilla", "price":0.50, "pints":20 }, 1:{ "flavor":"Chcolate", "price":0.50, "pints" :31 },2:{ "ফ্লেভার":"কুকিজ এবং ক্রিম", "দাম":0.75, "পিন্টস":14 }}আইসক্রিম_ফ্লেভার[1]["দাম"] =0.45 প্রিন্ট(আইসক্রিম_ফ্লেভারস[1]) 

আমাদের কোড ফিরে আসে:

{'flavor':'Chcolate', 'price':0.45, 'pints':31}

আমরা মূল্য এর মান পরিবর্তন করেছি আমাদের চকোলেট আইসক্রিমের মূল চাবিকাঠি হল $0.45।

এটি করার জন্য, আমরা অভিধানের সূচক মান উল্লেখ করেছি যার মূল্য মান আমরা 1 হিসাবে পরিবর্তন করতে চেয়েছিলাম। এই মানটিতে আমাদের অভিধানে চকলেট আইসক্রিম সম্পর্কে তথ্য রয়েছে। তারপর, আমরা মূল্য-এ একটি নতুন মান নির্ধারণ করেছি কী।

নেস্টেড ডিকশনারি পাইথন:এলিমেন্ট মুছুন

একটি নেস্টেড অভিধানে সংরক্ষিত একটি আইটেম মুছে ফেলার জন্য, আমরা del ব্যবহার করতে পারি বিবৃতি ডেল স্টেটমেন্ট আপনাকে একটি বস্তু মুছে ফেলতে দেয়। del একটি পাইথন ব্রেক স্টেটমেন্টের মতো লেখা হয়, তার নিজস্ব লাইনে, তারপর অভিধানে আইটেমটি যা আপনি মুছতে চান।

ধরুন আমরা আর আমাদের দোকানে অস্থায়ীভাবে কুকিজ এবং ক্রিম আইসক্রিম অফার করছি না। কুকিজ এবং ক্রিম আইসক্রিম সংরক্ষণ করা আমাদের ফ্রিজারটি কাজ করা বন্ধ করে দেয় এবং পণ্যগুলি গলে যায়৷

আমরা নিম্নলিখিত কোড ব্যবহার করে আমাদের নেস্টেড অভিধান থেকে এই আইসক্রিমটি সরিয়ে ফেলতে পারি:

ice_cream_flavors ={ 0:{ "flavor":"Vanilla", "price":0.50, "pints":20 }, 1:{ "flavor":"Chcolate", "price":0.50, "pints" :31 },2:{ "ফ্লেভার":"কুকিজ এবং ক্রিম", "দাম":0.75, "পিন্টস":14 }}ডেল আইসক্রিম_ফ্লেভারস[2]প্রিন্ট(আইসক্রিম_ফ্লেভার)

আমাদের কোড ফিরে আসে:

{0:{'ফ্লেভার':'ভ্যানিলা', 'দাম':0.5, 'পিন্ট':20}, 1:{'ফ্লেভার':'চকলেট', 'দাম':0.5, 'পিন্টস':31 }}

আমাদের কোডে, আমরা একটি del ব্যবহার করেছি আমাদের নেস্টেড অভিধানে মান মুছে ফেলার বিবৃতি যার কী ছিল 2 এর সমান। আপনি দেখতে পাচ্ছেন, এটি কুকিজ এবং ক্রিম-এর এন্ট্রি সরিয়ে দিয়েছে আমাদের নেস্টেড অভিধান থেকে।

পাইথন নেস্টেড অভিধানের মাধ্যমে পুনরাবৃত্তি করুন

এখন, ধরুন আমরা আমাদের নেস্টেড অভিধানের প্রতিটি অভিধানের বিষয়বস্তু কনসোলে প্রিন্ট করতে চাই। কিভাবে আমরা এই কাজটি সম্পন্ন করতে পারি?

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

ice_cream_flavors ={ 0:{ "flavor":"Vanilla", "price":0.50, "pints":20 }, 1:{ "flavor":"Chcolate", "price":0.50, "pints" :31 },2:{ "ফ্লেভার":"কুকিজ এবং ক্রিম", "দাম":0.75, "পিন্টস":14 }} কী, আইসক্রিম_ফ্লেভারস. আইটেমগুলির মান():প্রিন্ট("আইসক্রিম:", কী ) k, v-এর জন্য value.items():print(k + ":", value[k])

আমাদের কোড ফিরে আসে:

আইসক্রিম:0ফ্লেভার:ভ্যানিলাপ্রাইস:0.5পিন্টস:20আইসক্রিম:1ফ্লেভার:চকলেটের দাম:0.5পিন্টস:31আইসক্রিম:2ফ্লেভার:কুকিজ এবং ক্রিমের দাম:0.75পিন্টস:14

আসুন আমাদের কোড ভাঙ্গা যাক। প্রথমত, আমরা আইসক্রিম স্বাদের আমাদের নেস্টেড অভিধান সংজ্ঞায়িত করেছি।

তারপর, আমরা একটি লুপ সংজ্ঞায়িত করেছি যা ice_cream_flavors-এ প্রতিটি কী এবং মানের মধ্য দিয়ে যায় অভিধান এই লুপ .items() ব্যবহার করে আমাদের ice_cream_flavors-এ সমস্ত কী এবং মানগুলির একটি তালিকা তৈরি করতে অভিধান, যার উপরে লুপ পুনরাবৃত্তি করতে পারে।

তারপর, আমরা আইসক্রিম: প্রিন্ট করি একটি নির্দিষ্ট আইসক্রিমের সাথে সম্পর্কিত কী দ্বারা অনুসরণ করা হয়।

এর পরে, আমরা প্রতিটি মান-এর প্রতিটি আইটেমের মাধ্যমে লুপ করার জন্য অন্য একটি লুপ ব্যবহার করি আমাদের নেস্টেড অভিধানে। এটি আমাদের নেস্টেড অভিধানের প্রতিটি অভ্যন্তরীণ এন্ট্রিকে নির্দেশ করে (যেমন ভ্যানিলা এবং চকোলেটের জন্য)। এই লুপটি আমাদের অভ্যন্তরীণ অভিধানে প্রতিটি কী-এর নাম প্রিন্ট করে, তারপর একটি কোলন, তারপর সেই কী-এর সাথে যুক্ত মান।

উপসংহার

নেস্টেড ডিকশনারী আপনাকে পাইথনে ডিকশনারির ভিতরে ডিকশনারী সঞ্চয় করতে দেয়।

এই টিউটোরিয়ালে আলোচনা করা হয়েছে, উদাহরণের রেফারেন্স সহ, কিভাবে:

  • একটি নেস্টেড অভিধান তৈরি করুন
  • একটি নেস্টেড অভিধানে উপাদান যোগ করুন এবং উপাদান আপডেট করুন
  • একটি নেস্টেড অভিধান থেকে উপাদানগুলি সরান
  • একটি নেস্টেড অভিধানের মাধ্যমে পুনরাবৃত্তি করুন

পাইথনে কোডিং সম্পর্কে আরও জানতে, পাইথনে কোডিং করার জন্য আমাদের গাইড পড়ুন।


  1. পাইথন অভিধান আপডেট

  2. পাইথন অনুরোধ:একটি গাইড

  3. পাইথন স্যুইচ স্টেটমেন্ট:একটি কিভাবে করতে হবে গাইড

  4. পাইথন হ্যালো ওয়ার্ল্ড:একটি কিভাবে-টু গাইড