কম্পিউটার টিউটোরিয়াল

পাইথন ডিকশনারি মেমরি ইউজেজ ব্যাখ্যা

পাইথন ডিকশনারি মেমরিতে বাকেট (bucket) অ্যারে হিসেবে স্টোর হয়। প্রতিটি বাকেটে থাকে:

  1. অবজেক্টের হ্যাশ কোড (কলিশন রেজোলিউশনের কারণে পজিশন থেকে প্রেডিক্ট করা যায় না)
  2. কী অবজেক্টের পয়েন্টার
  3. ভ্যালু অবজেক্টের পয়েন্টার

মেমরি খরচ (প্রতি এন্ট্রি)

  • ৩২-বিট মেশিন: কমপক্ষে ১২ বাইট (৩ × ৪ বাইট পয়েন্টার/ইন্ট)
  • ৬৪-বিট মেশিন: কমপক্ষে ২৪ বাইট (৩ × ৮ বাইট)

রিসাইজিং স্ট্র্যাটেজি

  • শুরুতে ৮টি খালি বাকেট
  • ক্ষমতা পূর্ণ হলে বাকেট সংখ্যা ডাবল হয় (২x)
  • এটি অ্যামোর্টাইজড O(1) ইনসারশন নিশ্চিত করে

অতিরিক্ত ওভারহেড

  • খালি বাকেটও মেমরি নেয় (স্পার্স অ্যালোকেশন)
  • কী এবং ভ্যালু অবজেক্ট আলাদা মেমরিতে থাকে (রেফারেন্স কাউন্টিং)
  • স্ট্রিং কী ইন্টার্নিং (interning) হলে মেমরি বাঁচায়

নোট: sys.getsizeof(dict) শুধু ডিকশনারি অবজেক্টের সাইজ দেয়, কী/ভ্যালু অবজেক্টের সাইজ দেয় না।

  1. পাইথনে নেস্টেড ডিকশনারি তৈরি করার পদ্ধতি

  2. পাইথনে ডিকশনারির ভিতরে ডিকশনারি ডিফাইন করার পদ্ধতি

  3. পাইথনে এক্সসেপশন একটি অবজেক্ট কিভাবে ব্যাখ্যা করবেন

  4. পাইথন ফাংশন থেকে ডিকশনারি রিটার্ন করার পদ্ধতি