আমার প্রিয় বন্ধুরা, আজ আমি আপনদের মধ্যে আসলাম পাইথন এর লিস্ট নিয়ে । আসুন জেনে নিই লিস্ট আসলে কী , কেন , ও কীভাবে এটি ব্যবহার করতে হয় ।
List : পাইথনে লিস্ট হল সাধারণ যেকোন লিষ্ট এর মতই । তবে সাধারণ লিষ্ট এর সাথে এর গণনার কিছু পার্থক্য আাছে । আসুন আমরা একটি ছোট উদাহরণ এর মাধ্যমে এর ব্যবহার জেনে নিই ।
select_month = int(input("What month (1-12)? ")) months =['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] if 1 <=select_month <= 12: print("The month is",months[select_month - 1])
দেখুন , এখানে আামরা বারো মাসের নাম নিয়ে একটি লিস্ট তৈরী করেছি । লিস্ট লেখার নিয়মগুলি ভাল ভাবে উদাহরণ থেকে দেখে নিন । এখন দেখুন সাধারণ যেকোন লিস্ট এর সাথে এর বেসিক পার্থক্য হল পাইথনের লিস্ট এর প্রথম যে উপাদান টি থাকে তার অবস্থান ধরা হয় ০ । ফলে এখানে 'January', এর অবস্থান ধরা হবে ০ । এবার বলা হয়েছে যে যদি select_month এর ইনপুট ১ অপেক্ষা বড় হয় এবং ১২ অপেক্ষা ছোট হয় তবে select_month থেকে ১ বিয়োগ করে months এর সংখ্যা প্রিন্ট করতে । অর্থাত যদি মাসের ইনপুট হয় ৫ তবে মাসের সংখ্যা হবে ৪ , কারণ প্রথম মাসের মান ০ । আবার সংখ্যা লিস্টের মধ্যে থাকলে তার জন্যে "" চিহ্ন দেওয়ার দরকার নেই । এবার আসুন আমরা লিষ্টের আরও কিছু ব্যবহার জেনে নিই । নিচের কোডগুলি লিখুন :
demolist =["life", 42, "the universe", 6, "and", 9] print("demolist = ",demolist) demolist.append("everything") print("after 'everything' was appended demolist is now:") print(demolist) print("len(demolist) =", len(demolist)) print("demolist.index(42) =",demolist.index(42)) print("demolist[1] =",demolist[1]) print("demolist is now: ",demolist) del demolist[2] print("After 'the universe' was removed demolist is now:") print(demolist) if "life" in demolist: print("'life' was found in demolist") else: print("'life' was not found in demolist") if "techtunes" in demolist: print("'techtunes' was found in demolist") if "techtunes" not in demolist: print("'techtunes' was not found in demolist")
দেখুন এখানে প্রথমে আমরা একটি লিস্ট তৈরী করেছি । তার পর বিভিন্ন ভাবে সেটি এডিট করেছি । আসুন আমরা জেনে নিই কোন কোডটির কী অর্থ :
print("demolist = ",demolist) : লিস্টটি প্রিন্ট করার জন্য ব্যবহৃত হয়েছে ।
.append : লিস্ট এ কোন কিছু যোগ করার জন্য append কোডটি ব্যবহৃত হয় । যেমন demolist.append("techtunes") লিখলে techtunes লেখাটি লিস্ট এর মধ্যে যুক্ত হবে ।
len(demolist) : লিস্টে কতগুলি সদস্য আছে তা নির্ণয় করার জন্য বা লিষ্টের দৈঘৃ মাপার জন্য len কোডটি ব্যবহৃত হয় ।
.index : লিষ্টের কোন সদস্য টি কত নম্বর অবস্থানে আছে তা নির্ণয়ের জন্য এটি ব্যবহৃত হয় । যেমন : demolist.index(42) লেখাটি লিষ্টে ৪২ এর অবস্থান বলে দেবে ।
del : লিস্টটি থেকে কোন উপাদান মুছে ফেলার জন্য এই কোডটি ব্যবহৃত হয় । যেমন : del demolist[2] দিলে এটি লিস্টের ২ নম্বর আইটেম টিকে মুছে ফেলবে । এরপরের গুলি আশা করি আপনারা বুঝতে পরবেন । আগের পর্বে এসব সম্পর্কে আলোচনা করেছিলাম । এবার আসুন একটা বড় প্রোগ্রাম নিয়ে একটু নাড়াচাড়া করি আমরা লিস্টের মাধ্যমে একটু ব্যবহার কারীর সাথে যোগাযোগ করি ।
নিচের কোডটি সবাই লিখুন :
menu_item = 0 namelist =[] while menu_item != 9: print("--------------------") print("1. Print the list") print("2. Add a name to the list") print("3. Remove a name from the list") print("4. Change an item in the list") print("9. Quit") menu_item = int(input("Pick an item from the menu: ")) if menu_item == 1: current = 0 if len(namelist) > 0: while current < len(namelist): print(current, ".",namelist[current]) current =current + 1 else: print("List is empty") elif menu_item == 2: name = input("Type in a name to add: ") namelist.append(name) elif menu_item == 3: del_name = input("What name would you like to remove: ") if del_name in namelist: item_number =namelist.index(del_name) del namelist[item_number] else: print(del_name, "was not found") elif menu_item == 4: old_name = input("What name would you like to change: ") if old_name in namelist: item_number =namelist.index(old_name) new_name = input("What is the new name: ") namelist[item_number] =new_name else: print(old_name, "was not found") print("Goodbye")
এখন দেখুন প্রথমে আমরা 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 লেখাটি প্রিন্ট করো ।
এই হল পাইথনের লিস্ট সম্পর্কে আমি যতদূর জানি তার সবকিছু । অবশ্য লিস্টের কিছু অ্যাডভান্স ব্যবহার আমরা পরের পর্বেও দেখব । আজ এই পর্যন্তই । কেউ কিছু বুঝতে না পারলে বলুন । যথাসাধ্য বোঝানোর চেষ্টা করব । ধন্যবাদ ।
আমি অরিন্দম পাল। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 12 বছর 6 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 81 টি টিউন ও 316 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 20 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।
মানসিক ভাবে দূর্বল । কোন কাজই কনফিডেন্টলি করতে পারি না , তবুও দেখি কাজ শেষ পর্যন্ত হয়ে যায় । নিজের সম্পর্কে এক এক সময় ধারণা এক এক রকম হয় । আমার কোন বেল ব্রেক নেই । সকালে যে কাজ করব ঠিক করি , বিকালে তা করতে পারি না । নিজের...
অনেক অনেক ধন্যবাদ…