Site icon Trickbd.com

পাইথন প্রোগ্রামিং – ডিকশনারি ডাটা টাইপ – পর্ব ০৮

Unnamed

ডিকশনারি ডাটা টাইপ

পাইথনের ডাটা টাইপ গুলোর মধ্যে সবথেকে সমৃদ্ধ হচ্ছে ডিকশনারি। অন্যান্ন ল্যাঙ্গুয়েজ এ যেমন সি বা জাভাতে আলাদা ভাবে ডিকশনারি শেখা লাগে। কিন্তু, পাইথনে এটা বিল্ট-ইন। অনেক সময় এটাকে হ্যাশ টেবিলও বলা হয়।


আমাদের ডিকশনারি শব্দ মুখে নেয়ার সাথে সাথেই ম্নে হয় মোটা একটা বৈ জেটাতে শব্দের অর্থ দেয়া থাকে। হ্যাঁ!! এখানেও একই জিনিস।


এখানে পাইথন ডিকশনারিতে প্রত্যেক আইটেম এর দুইটা অংশ থাকে একটা হল কি (key) এবং অন্যটা ভ্যালু (Value)।


ভ্যারিয়েবলে যেমন ভ্যারিয়েবল নেম এবং ভ্যালু থাকে এখানেও সেরকম ভ্যারিয়েবল নেম এর জায়গায় key এবং ভ্যালু তো ভ্যালুই।


কয়েকটা জিনিস আগে দেখে নেয়া দরকারঃ—-



  1. ডিকশনারি তৈরি করতে কার্লি ব্র্যাকেটস বা থার্ড ব্র্যাকেট ব্যবহার করা হয়।
  2. একেকটা এলিমেন্ট তৈরি হয় key এবং value এর সমন্বয়ে।
  3. এখানে কোন ইনডেক্স নাম্বার থাকে না।
  4. কি (key) হিসেবে স্ট্রিং, ইন্টেজার অথবা ফ্লোট যেকোন কিছুই ব্যবহার করা যায়।
  5. ভ্যালু (value) হিসেবে যেকোন ডাটা টাইপই ব্যবহার করা যায়।


ডিকশনারি তৈরি এবং পরিচয়ঃ—


a = {'name':'Shahriar', 'phone':'01xxxx', 'country':'Bangladesh', 'language':'Python'}

এখানে এই যে a ভ্যারিয়েবলে ‘name’ এটা হচ্ছে প্রথম উপাদানের কি (key) এবং ‘Shahriar’ এটা হচ্ছে তার ভ্যালু (value) ।

এবং এই কি আর ভ্যালু নিয়েই হচ্ছে একটা উপাদান বা এলিমেন্ট। উপরের লিস্ট এ মোট এলিমেন্ট বা উপাদান আছে চারটা।

ডিকশনারি তৈরি করতে প্রথমে একটা থার্ড বা কার্লি ব্র্যাকেট দিয়ে তারপর কি (key) হিসেবে স্ট্রিং অথবা ইন্টেজার অথবা ফ্লোট দিতে পারেন , তারপর কোলন ( : ) দিয়ে তারপর ভ্যালু (value) হিসেবে যেকোন ডাটাই দিতে পারেন।


ডিকশনারি এক্সেসঃ—


যেহেতু ডিকশনারিতে কোন ইনডেক্স নাম্বার নেই তাই এটাকে অন্যগুলোর মত এক্সেস করা যায় না। ডিকশনারিকে এক্সেস করতে কি (key) ব্যবহার করা হয়। নিচের উদাহরণটা দেখুন…..


>>> a = {'name':'Shahriar', 'phone':'01xxxx', 'country':'Bangladesh', 'language':'Python'}
>>> a['country']
'Bangladesh'

এখানে আগের মতই তবে শুধু ইনডেক্স নম্বর দেয়ার পরিবর্তে কি (key) দিতে হবে। পাইথন একদম সিম্পল!! 🙂


আইটেম আপডেটঃ—


কোন আইটেম আপডেট করতে সেটাকে এক্সেস করে আপডেট করলেই হবে। যেমনঃ—


>>> a = {'name':'Shahriar', 'phone':'01xxxx', 'country':'Bangladesh', 'language':'Python'}
>>> a['phone'] = '01766555***'
>>> a
{'name': 'Shahriar', 'country': 'Bangladesh', 'phone': '01766555***', 'language': 'Python'}

দেখুন এখানে ‘phone’ কি (key) এর ভ্যালু আপডেট হয়ে গিয়েছে।


নতুন আইটেম এড করাঃ—


ডিকশনারিতে নতুন কোন আইটেম এড করতে সেটাকে নতুন কোন কি (key) তে এক্সেস করে সেটার ভ্যালু সেট করলেই হবে। যেমনঃ—


>>> a = {'name':'Shahriar', 'phone':'01xxxx', 'country':'Bangladesh', 'language':'Python'}
>>> a['district'] = 'Kushtia'
>>> a
{'name': 'Shahriar', 'country': 'Bangladesh', 'district': 'Kushtia', 'phone': '01766555***', 'language': 'Python'}

দেখুন এখানে আগে ‘district’ নামের কোন কি (key) বা তার ভ্যালু ছিল না। আমরা এক্সেস করে তৈরি করলাম। একদম সিম্পল!!


আবার যদি অন্য কোন ডিকশনারি বা একাধিক আইটেম একবারে এড করতে চাই তাহলে সেটাকে update() করতে হবে। যেমনঃ—-


>>> a = {'name':'Shahriar', 'phone':'01xxxx', 'country':'Bangladesh', 'language':'Python'}
>>> a.update({'e-mail':'00shovonahmed00@gmail.com', 'class':101})
>>> a
{'name': 'Shahriar', 'e-mail': '00shovonahmed00@gmail.com', 'class': 101, 'phone': '01766555***', 'language': 'Python', 'country': 'Bangladesh', 'district': 'Kushtia'}

খুব সহজেই হয়ে গেল না?? কোন প্রশ্ন থাকলে করে দিবেন।


আইটেম ডিলিটঃ—


কোন আইটেম ডিলিট করতে ব্যবহার করা হয় del । যেমনঃ–


>>> a = {'name':'Shahriar', 'phone':'01xxxx', 'country':'Bangladesh', 'language':'Python'}
>>> del a['phone']
>>> a
{'name': 'Shahriar', 'country': 'Bangladesh', 'language': 'Python'}

প্রথমে del লিখে তারপর ভ্যারিয়েবল দিয়ে সেটার কি (key) এক্সেস দিলেই হবে।


আমরা যদি কোন ডিকশনারির সব আইটেম একবারে ডিলিট করতে চাইল তাহলে খুব সহজে clear() দিয়ে করা যায়। যেমনঃ—


>>> a = {'name':'Shahriar', 'phone':'01xxxx', 'country':'Bangladesh', 'language':'Python'}
>>> a.clear()
>>> a
{}

clear এক ঘষাতেই পরিষ্কার। 🙂 🙂


ডিকশনারির কিছু মেথডঃ—-


get()

get() এর মাধ্যমে জানা যায় কোন আইটেম ডিকশনারিতে আছি কি না!!

যেমনঃ–


>>> a = {'name':'Shahriar', 'phone':'01xxxx', 'country':'Bangladesh', 'language':'Python'}
>>> a.get('home')
>>> a.get('name')
'Shahriar'

দেখুন প্রথমে get এর মাঝে ‘home’ দিয়েছি কিছুই হয় নি। কারণ, ‘home’ কি (key) এখানে নাই।

কিন্তু, পরে আবার যখন ‘name’ দিয়ে তখন যেহেতু ‘name’ আছে তাই তার ভ্যালু প্রিন্ট দিয়েছে। আরেকটা জিনিস দেখা যাকঃ—


>>> a = {'name':'Shahriar', 'phone':'01xxxx', 'country':'Bangladesh', 'language':'Python'}
>>> a.get('class', 'ekhane nai')
'ekhane nai'

কি হল না বুঝলে জানান।

আবার আরেকভাবেও এটা করা যায়। যেমনঃ–


>>> a = {'name':'Shahriar', 'phone':'01xxxx', 'country':'Bangladesh', 'language':'Python'}
>>> 'name' in a
True
>>> 'class' in a
False

এটা হল থাকলে True না থাকলে False


items()

একটা ডিকশনারিকে লিস্ট হিসেবে প্রিন্ট দেই এই items() ।

এবং প্রত্যেক আইটেম কে আবার টাপল হিসেবে প্রিন্ট করে। একটা উদাহরণ দেখলেই বুঝবেন।


>>> a = {'name':'Shahriar', 'phone':'01xxxx', 'country':'Bangladesh', 'language':'Python'}
>>> a.items()
dict_items([('name', 'Shahriar'), ('country', 'Bangladesh'), ('phone', '01xxxx'), ('language', 'Python')])

এখানে দেখুন লিস্ট হিসেবে পুরো ডিকশনারিকে প্রিন্ট দিয়েছি এবং প্রত্যেক আইটেম কে টাপল হিসেবে প্রিন্ট দিয়েছি।


keys()

একটা ডিকশনারির সবগুলা কি (key) কে একসাথে লিস্ট এ করে প্রিন্ট দেই। যেমনঃ–


>>> a = {'name':'Shahriar', 'phone':'01xxxx', 'country':'Bangladesh', 'language':'Python'}
>>> a.keys()
dict_keys(['name', 'country', 'phone', 'language'])

values()

একটা ডিকশনারির সবগুলা ভ্যালু (value) কে একসাথে লিস্ট এ করে প্রিন্ট দেই। যেমনঃ–


>>> a = {'name':'Shahriar', 'phone':'01xxxx', 'country':'Bangladesh', 'language':'Python'}
>>> a.values()
dict_values(['Shahriar', 'Bangladesh', '01xxxx', 'Python'])

খুব কষ্ট পেলাম এত গুলা টিউটোরিয়াল লিখেও যখন কারো রেপপন্স পেলাম না।

আমি লাইক বা কমেন্ট চাই না। চাই, কেউ যেন শিখুক এবং প্রশ্ন করুক। গত পর্বে একটা টেস্ট নিয়েছিলাম কেউ সেটাতে অংশ নেই নি।

আর আগের পর্ব গুলোতে দেয়া হোময়ার্ক গুলোও কেউ করে নি। শুধু একজন ভাই করেছেন। উনার কথা ভেবেই পোস্ট দিচ্ছি।

কেউ তো একজন শিখছে।

আচ্ছা, মোট ২০ টা পর্ব হয়ত হবে এই পাইথন ব্যাসিক সিরিজে তারপর একটা ইন্টারমিডিয়েট সিরিজ লিখব।

এবং শেষে হয় জ্যাঙ্গো নাহয় গেম ডেভেলপমেন্ট সিরিজ করাব। তারপর, শুভ বিদায় হবে পাইথন কোর্স এর।

ধন্যবাদ! পরবর্তী পর্বে আমি আবার আসবো পাইথন ইফ-এলস কন্ডিশন নিয়ে।

ততদিন ভালো থাকুন সুস্থ থাকুন।

আসসালামু আলাইকুম আমি শাহরিয়ার আহমেদ শোভন। ফেসবুকে আমি http://facebook.com/shovon.0.ahmed