পাইথন জেম-৬

আগের পর্ব- , , ৩, ,

আমরা এখন পর্যন্ত পাইথনের যে কয়টি ডাটা টাইপ সম্পর্কে তার সবই ছিলো immutable ডাটা টাইপ। এর মানে হচ্ছে, একবার এগুলো ডিক্লেয়ার হয়ে গেলে তাকে আর পরিবর্তন করা সম্ভব না। যেমন-

6-1

এখানে a, b এবং c তে থাকা মানগুলোকে আমরা পরিবর্তন করতে পারবো না। তবে আমরা নতুনভাবে এদের মানটাকে সেট করতে পারব।

যেমন-

6-2

এখানে, a,b এবং c এর মান পুরোপুরিই পরিবর্তন হয়ে যাচ্ছে। আমাদের পছন্দমত যেন আমরা কোন ভ্যারিয়েবলে থাকা মানের যেকোন একটা অংশ  পরিবর্তন করতে পারি সেজন্য আছে পাইথনের mutable ডাটা টাইপ- list, tuple এবং dictionary। পাইথনের ইউনিকনেসের অন্যতম কারণ হচ্ছে এই ডাটা টাইপ গুলো।

প্রথমেই আসা যাক, list এর ব্যাপারে। পাইথনে লিস্ট ঘোষণা করা হয় তৃতীয় বন্ধনীর মাধ্যমে। যেমন-

6-3

এখানে, পাইথনের নিয়মানুসারে লিস্টের ভিতরে প্রতিটা element কে আলাদা করার জন্য কমা ব্যবহার করা হয়েছে। আমরা প্রতিটা লিস্টে একই ধরনের ডাটা রেখেছি। যেমন- a তে রেখেছি integer, b তে রেখেছি float এবং c তে রেখেছি string। তবে আমরা চাইলে মিক্সড ডাটাও রাখতে পারি। যেমন-

6-4

আমরা উপরের উদাহরণে b ভ্যারিয়েবলে যে লিস্টটা রেখেছি তার element গুলো খেয়াল করলে দেখতে পাই যে, সেখানে দুইটা integer- 3 ,4; দুইটা লিস্ট- [1,2,5.6] ও [‘Easy!’, 1] এবং একটা string আছে- “This is not complicated”। এবং পাইথনে লিস্টের ভিতর এভাবে টাইপ মিক্সিং হলে কোন সমস্যা নেই। কারন পাইথন লিস্টের প্রতিটা element কে আলাদাভাবে Treat করে!

লিস্টে থাকা element গুলোর ক্রম শুরু হয় 0 থেকে। অর্থাৎ প্রথম element এর ক্রম হবে শুন্য। আমরা এই ক্রম ব্যবহার করে লিস্টের যেকোন element কে access করতে পারব। যেমন-

6-5

list কে কেন mutable বলা হয়? কারণ list কে একবার ডিক্লেয়ার করার পরও তার ভিতরের যেকোন element-কে আমরা বদলাতে পারি এবং চাইলে নতুন  element ও যোগ করতে পারি, যেকোন element বাদ দিতে পারি। যেমন-

6-6

প্রথমে আমরা একটা লিস্ট ডিক্লেয়ার করে a ভ্যারিয়েবলে রাখছি। তারপর লিস্টের ২য় element টা পরিবর্তন করছি। মান 2 এর বদলে 7 করছি। তারপর append() ফাংশনের মাধ্যমে 10 কে লিস্টে যোগ করছি। আবার pop() ফাংশনের মাধ্যমে শেষ element টা বের করে আনছি। এখানে একটা ব্যাপার লক্ষণীয় যে, list এ কোন element যোগ করতে/বাহির করার সময় তা LIFO অর্ডার ব্যবহার করে। LIFO মানে Last in First out. অর্থাৎ element যোগ করলে তা সবার শেষে যোগ হয় আর বাহির করার সময়ও সবার আগে শেষ element টাই বের হয়।

list এ append() এবং pop() এর মত এমন অনেক ফাংশন আছে যা দিয়ে list manipulation এর অনেক কাজ করা যায়। আমরা dir() ফাংশন ব্যবহার করে list manipulation এ ব্যবহার করার মত কি কি built-in ফাংশন আছে তা সম্পর্কে একটা ধারণা পেতে পারি।

6-7

এই ফাংশনগুলো ব্যবহারের কমন মেথড হল list_name.function_name()। এখানে ব্র্যাকেটের ভিতর কখনও value থাকবে, কখনও থাকবে না। এটা নির্ভর করে ফাংশনের উপর।

dir() ফাংশন ব্যবহার করে যেকোন ডাটা টাইপের জন্য পাইথনে সংরক্ষিত built-in ফাংশনগুলো সম্পর্কে ধারণা পাওয়া যায়।

 

আজকে এই পর্যন্তই!

 

কিছু প্রশ্ন রেখে যাচ্ছিঃ

১) একটা list এ কোন নির্দিষ্ট element মোট কতবার আছে তা বের করার জন্য পাইথনের কোন built-in ফাংশনটা ব্যবহার করা হয়?

২) pop() ফাংশন বাদে আর কোন built-in ফাংশন ব্যবহার করে element বাহির করা বা ডিলিট করা কী সম্ভব?

৩) লিস্টকে কী জন্মদিনের কেকের মত করে slice করা সম্ভব?

HINTS: Google , Official Python-2.7 documentation for lists.

Md. Noor Faizur Reza
Author: Md. Noor Faizur Reza

আমার যে কাজ ভালো লাগে তা নিয়ে সারাদিন পরে থাকি !

Permanent link to this article: https://www.borgomul.com/rezanur/2411/


মন্তব্য করুন আপনার ফেসবুক প্রোফাইল ব্যবহার করে

মন্তব্য করুন