আমার প্রিয় বন্ধুরা, আজ আমি আপনদের মধ্যে আসলাম পাইথন এর লিস্ট নিয়ে । আসুন জেনে নিই লিস্ট আসলে কী , কেন , ও কীভাবে এটি ব্যবহার করতে হয় ।
List : পাইথনে লিস্ট হল সাধারণ যেকোন লিষ্ট এর মতই । তবে সাধারণ লিষ্ট এর সাথে এর গণনার কিছু পার্থক্য আাছে । আসুন আমরা একটি ছোট উদাহরণ এর মাধ্যমে এর ব্যবহার জেনে নিই ।
দেখুন , এখানে আামরা বারো মাসের নাম নিয়ে একটি লিস্ট তৈরী করেছি । লিস্ট লেখার নিয়মগুলি ভাল ভাবে উদাহরণ থেকে দেখে নিন । এখন দেখুন সাধারণ যেকোন লিস্ট এর সাথে এর বেসিক পার্থক্য হল পাইথনের লিস্ট এর প্রথম যে উপাদান টি থাকে তার অবস্থান ধরা হয় ০ । ফলে এখানে 'January', এর অবস্থান ধরা হবে ০ । এবার বলা হয়েছে যে যদি select_month এর ইনপুট ১ অপেক্ষা বড় হয় এবং ১২ অপেক্ষা ছোট হয় তবে select_month থেকে ১ বিয়োগ করে months এর সংখ্যা প্রিন্ট করতে ।
অর্থাত যদি মাসের ইনপুট হয় ৫ তবে মাসের সংখ্যা হবে ৪ , কারণ প্রথম মাসের মান ০ । আবার সংখ্যা লিস্টের মধ্যে থাকলে তার জন্যে "" চিহ্ন দেওয়ার দরকার নেই । এবার আসুন আমরা লিষ্টের আরও কিছু ব্যবহার জেনে নিই । নিচের কোডগুলি লিখুন :
দেখুন এখানে প্রথমে আমরা একটি লিস্ট তৈরী করেছি । তার পর বিভিন্ন ভাবে সেটি এডিট করেছি ।
আসুন আমরা জেনে নিই কোন কোডটির কী অর্থ :
print("demolist = ",demolist) : লিস্টটি প্রিন্ট করার জন্য ব্যবহৃত হয়েছে ।
.append : লিস্ট এ কোন কিছু যোগ করার জন্য append কোডটি ব্যবহৃত হয় । যেমন demolist.append("techtunes") লিখলে techtunes লেখাটি লিস্ট এর মধ্যে যুক্ত হবে ।
len(demolist) : লিস্টে কতগুলি সদস্য আছে তা নির্ণয় করার জন্য বা লিষ্টের দৈঘৃ মাপার জন্য len কোডটি ব্যবহৃত হয় ।
.index : লিষ্টের কোন সদস্য টি কত নম্বর অবস্থানে আছে তা নির্ণয়ের জন্য এটি ব্যবহৃত হয় ।
যেমন : demolist.index(42) লেখাটি লিষ্টে ৪২ এর অবস্থান বলে দেবে ।
del : লিস্টটি থেকে কোন উপাদান মুছে ফেলার জন্য এই কোডটি ব্যবহৃত হয় । যেমন : del demolist[2] দিলে এটি লিস্টের ২ নম্বর আইটেম টিকে মুছে ফেলবে । এরপরের গুলি আশা করি আপনারা বুঝতে পরবেন । আগের পর্বে এসব সম্পর্কে আলোচনা করেছিলাম ।
এবার আসুন একটা বড় প্রোগ্রাম নিয়ে একটু নাড়াচাড়া করি আমরা লিস্টের মাধ্যমে একটু ব্যবহার কারীর সাথে যোগাযোগ করি ।
নিচের কোডটি সবাই লিখুন :
এখন দেখুন প্রথমে আমরা menu_item নামে একটি ভ্যরিয়েবল নিয়েছি ও namelist =[] দ্বারা একটি খালি লিস্ট নিয়েছি । এরপর বলেছি যে যতক্ষণ না পর্যন্ত menu_item এর ইনপুট ৯ না হয় ততক্ষণ নিচের লেখাগুলি প্রিন্ট করতে ও menu_item এর মান ইনপুট নিতে । এরপর আমরা একেকটি মেনু আইটেমের জন্য একেক রকম কাজ নির্ধারণ করে দিয়েছি । বলেছি যে মেনু আইটেমের মান ১ হলে বর্তমানে লিস্টে কিছুই থাকে না ।
তাই current বা বর্তমানে লিস্টে আইটেমের সংখ্যা ০ । এবার বলেছি যদি namelist এর দৈর্ঘ ০ থেকে বড় হয় তবে যতক্ষণ বর্তমান সংখ্যা namelist এর দৈর্ঘের থেকে ছোট হয় ততক্ষণ current এর সংখ্যা ও namelist প্রিন্ট করে যেতে । বর্তমান সংখ্যা len(namelist) এর থেকে ছোট হবে কারণ ওই ০ থেকে লিস্ট গণনার কারণে । কোডটি লিখে রান করালে আপনারা বিষয়টি আরও ভালভাবে বুঝতে পারবেন । তারপর current এর সাথে ১ যোগ করে যাও ।
আর তা না হয়ে যদি namelist খালি হয় তবে List is empty লেখাটি প্রিন্ট করো । এরপর যদি মেনু আইটেম এর ইনপুট হয় ২ তাহলে যে সংখ্যাটি লিস্টে যোগ করতে হবে name ভ্যরিয়েবল দ্বারা তার ইনপুট নাও ও লিস্টে append কোডটি দ্বারা যোগ কর । তারপর আমরা মেনু আইটেম ৩ এর জন্য নির্ধারণ করেছি লিস্ট থেকে আইটেম বাদ দেওয়া । এখন মেনু আইটেম ৩ হলে del_name নামক ভ্যরিয়েবল দ্বারা যে নামটি লিস্ট থেকে ডিলিট করতে হবে তার ইনপুট নাও । যদি নামটি লিস্টের মধ্যে থাকে তবে নামটি লিস্টের কোন আইটেম নাম্বারের সাথে মেলছে তা item_number =namelist.index(del_name) কোডটি দ্বারা item_number ভ্যরিয়েবলের মাধ্যমে খুজে বের কর ।
তারপর del কোডটি দ্বারা নামটি ডিলিট করো । আর নামটি লিস্টে না থাকলে প্রিন্ট করো del_name was not found । এবার আসি নাম চেন্জ করার ক্ষেত্রে । মেনু আইটেম এর ইনপুট ৪ হলে old_name নামক ভ্যরিয়েবল দ্বারা যে পুরান নামটি চেন্জ করতে হবে তার ইনপুট নাও । এখন ইনপুট দেওয়া নাম যদি নেমলিস্টে থাকে তবে লিস্টের কোন আইটেম নাম্বারের সাথে এটি মিলে তা দেখো ।
আর যদি মেলে তবে new_name নামক ভ্যরিয়েবল দ্বারা যে নতুন নামটি পুরান নামটিকে প্রতিস্থাপন করবে তার ইনপুট নাও । এরপর namelist[item_number] =new_name কোডের মাধ্যমে নামটি চেন্জ করো । আর ইনপুট কৃত নামটি লিস্টে না থাকলে old_name, "was not found" লেখাটি প্রিন্ট করো ।
আর মেনু আইটেম এর ইনপুট যদি ৯ হয় তবে Goodbye লেখাটি প্রিন্ট করো ।
এই হল পাইথনের লিস্ট সম্পর্কে আমি যতদূর জানি তার সবকিছু ।
অবশ্য লিস্টের কিছু অ্যাডভান্স ব্যবহার আমরা পরের পর্বেও দেখব । আজ এই পর্যন্তই । কেউ কিছু বুঝতে না পারলে বলুন । যথাসাধ্য বোঝানোর চেষ্টা করব । ধন্যবাদ ।
।
অনলাইনে ছড়িয়ে ছিটিয়ে থাকা কথা গুলোকেই সহজে জানবার সুবিধার জন্য একত্রিত করে আমাদের কথা । এখানে সংগৃহিত কথা গুলোর সত্ব (copyright) সম্পূর্ণভাবে সোর্স সাইটের লেখকের এবং আমাদের কথাতে প্রতিটা কথাতেই সোর্স সাইটের রেফারেন্স লিংক উধৃত আছে ।