মজার ও সহজ প্রোগ্রামিং, পাইথন প্রোগ্রামিং [পর্ব-০৯] :: পাইথন এর লিস্ট আসলে কী, কেন, ও কীভাবে এটি ব্যবহার করতে হয়

মজার ও সহজ পাইথন প্রোগ্রামিং

আমার প্রিয় বন্ধুরা, আজ আমি আপনদের মধ্যে আসলাম পাইথন এর লিস্ট নিয়ে । আসুন জেনে নিই লিস্ট আসলে কী , কেন , ও কীভাবে এটি ব্যবহার করতে হয় ।
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 লেখাটি প্রিন্ট করো ।

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

Level 2

আমি অরিন্দম পাল। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 11 বছর 9 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 81 টি টিউন ও 316 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 20 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।

মানসিক ভাবে দূর্বল । কোন কাজই কনফিডেন্টলি করতে পারি না , তবুও দেখি কাজ শেষ পর্যন্ত হয়ে যায় । নিজের সম্পর্কে এক এক সময় ধারণা এক এক রকম হয় । আমার কোন বেল ব্রেক নেই । সকালে যে কাজ করব ঠিক করি , বিকালে তা করতে পারি না । নিজের...


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

অনেক অনেক ধন্যবাদ…

ভাই, আপনাকেও অসংখ্য ধন্যবাদ

valo laglo

আপনাদের ভাল লাগলেই আমার লেখার সার্থকতা ।

nice !

Level 0

ভাই এই ভিডিওগুলো দেখেন http://www.youtube.com/watch?v=4Mf0h3HphEA&list=PLEA1FEF17E1E5C0DA। banglatechbook

ভাই, আপনি ভিডিও লিংকগুলি দিয়েছেন তার জন্য অসংখ্য ধন্যবাদ । কিন্তু বাংলাদেশে বসে ইউটিউবে ভিডিও দেখা !!!!!!!! আর যেখানে আছে গ্রামীন এর স্পীড ।!!!!!!!

অনেক অনেক ধন্যবাদ…