কম্পিউটার টিউটোরিয়াল

পাইথন: একটি লিস্টে সর্বোচ্চ মানের সূচক বের করা

সূচকরণ (indexing) ব্যবহার করে আপনি একটি লিস্ট থেকে একটি নির্দিষ্ট আইটেম বা আইটেমের পরিসর পেতে পারেন। আপনি শুধুমাত্র তখন একটি নির্দিষ্ট আইটেম পেতে পারেন যখন আপনি সেই মানের সাথে যুক্ত সূচক সংখ্যা জানেন।

পাইথন: লিস্টে সর্বোচ্চ মানের সূচক মান বের করা

একটি প্রোগ্রাম লিখুন যা শেষ গণিত পরীক্ষায় সর্বোচ্চ নম্বর পেয়ে যCLUS ছাত্রের নাম বের করে। সেই নামটি কনসোলে প্রিন্ট করা হবে।

শুরুতে দুটি লিস্ট তৈরি করুন:

students = ["Andy", "April", "Julia", "Gary"]
grades = [75, 82, 64, 68]

প্রথম লিস্টে শ্রেণির ছাত্রদের নাম রয়েছে। দ্বিতীয় লিস্টে তাদের সংশ্লিষ্ট গ্রেড রয়েছে।

এই লিস্ট দুটি সমান্তরাল অ্যারে (parallel arrays), অর্থাৎ দুটি অ্যারের আকার একই এবং প্রতিটি মান একটি রেকর্ডের অংশ উপস্থাপন করে। "students" তে নাম রয়েছে এবং "grades" তে সেই ছাত্রদের অর্জিত গ্রেড রয়েছে।

এরপর, লিস্টে সর্বোচ্চ গ্রেড খুঁজুন। আপনি max() ফাংশন ব্যবহার করে লিস্টে সর্বোচ্চ গ্রেড বের করতে পারেন:

largest = max(grades)

এই কোডটি সর্বোচ্চ সংখ্যাটি বের করে। কিন্তু এটি আপনার প্রয়োজনীয়তা পূরণ করে না। আপনি সর্বোচ্চ সংখ্যার সূচক অবস্থান চান। এর জন্য একটি অন্য বিল্ট-ইন ফাংশন ব্যবহার করুন: index()। লিস্টে সর্বোচ্চ আইটেমের সূচক মান বের করুন:

index_of_largest = grades.index(largest)

যেহেতু দুটি লিস্ট সমান্তরাল, "grades" লিস্টে সর্বোচ্চ গ্রেডের সূচক সংখ্যা "students" লিস্টে সেই গ্রেড অর্জনকারী ছাত্রের সূচক সংখ্যার সাথে মিলে যাবে।

এখন কনসোলে একটি বার্তা প্রিন্ট করুন যা বলে যে কে সর্বোচ্চ গ্রেড অর্জন করেছে:

print("{} earned the highest grade in the class. Their grade was {}.".format(students[index_of_largest], largest))

সূচক সিনট্যাক্স ব্যবহার করে সর্বোচ্চ গ্রেড অর্জনকারী ছাত্রের নাম বের করুন। তারপর এই মান এবং তার অর্জিত গ্রেডকে একটি স্ট্রিং-এ যোগ করুন।

প্রোগ্রামটি রান করুন এবং ফলাফল দেখুন:

April earned the highest grade in the class. Their grade was 82.

কোডটি সফলভাবে সে ছাত্রকে চিহ্নিত করেছে যিনি সর্বোচ্চ গ্রেড অর্জন করেছেন। ন্যূনতম উপাদানের সূচক বের করতে, আপনি max() ফাংশনের বদলে min() ফাংশন ব্যবহার করতে পারেন।

সর্বোচ্চ মানের সমান একাধিক সূচক খুঁজে বের করা

যদি দুজন ছাত্রের সর্বোচ্চ গ্রেড একই হয় তবে কী হবে? উপরের প্রোগ্রাম শুধুমাত্র প্রথম ছাত্রের সূচক অবস্থান ফেরত দেয় যিনি নির্দিষ্ট গ্রেডটি অর্জন করেছেন।

নির্দিষ্ট গ্রেড অর্জনকারী সমস্ত ছাত্রের ঘটনা খুঁজে বের করতে, আপনি লিস্ট কম্প্রিহেনশন (list comprehension) ব্যবহার করতে পারেন। আগের মতো মানগুলি আরম্ভ করুন এবং লিস্টে সর্বোচ্চ আইটেমের সূচক মান বের করুন:

students = ["Andy", "April", "Julia", "Gary", "Paul"]
grades = [75, 82, 64, 68, 82]
largest = max(grades)

নতুন প্রোগ্রামে একটি রেকর্ড যোগ করা হয়েছে যাতে দেখা যায় দুজন ছাত্রের একই গ্রেড থাকলে কী ঘটে।

এরপর, একটি লিস্ট কম্প্রিহেনশন লিখুন। এই লিস্ট কম্প্রিহেনশন নির্দিষ্ট গ্রেড অর্জনকারী সমস্ত ছাত্রের সূচক অবস্থান বের করবে:

all_grades = [g for g, x in enumerate(grades) if x == largest]

এই কোডটি "grades" লিস্টের প্রতিটি গ্রেডের মধ্য দিয়ে পুনরাবৃত্তি করে। প্রতিটি গ্রেড "grades" লিস্টের সর্বোচ্চ মানের সাথে তুলনা করা হয়। যদি কোনো মান সর্বোচ্চ গ্রেডের সমান হয়, তবে তা লিস্টে যোগ করা হয়।

enumerate() ফাংশন আমাদের লিস্টকে দুটি লিস্টে ভাগ করে: সূচক সংখ্যা এবং মান। সুতরাং, "g" লিস্টে একটি আইটেমের সূচক উপস্থাপন করে এবং "x" একটি আইটেমের মান উপস্থাপন করে।

এরপর, একটি for লুপ ব্যবহার করে সর্বোচ্চ গ্রেডের সমান গ্রেড পেয়েছে এমন প্রতিটি ছাত্রের জন্য একটি বার্তা প্রিন্ট করুন:

for g in all_grades:
    print("{} earned the highest grade in the class. Their grade was {}.".format(students[g], grades[g]))

যদি একাধিক ছাত্র শ্রেণিতে সর্বোচ্চ গ্রেড অর্জন করে, তবে for লুপ একাধিকবার চলে। লুপ প্রতিবার চলে, একটি ছাত্রের নাম কনসোলে প্রিন্ট হয় যিনি শ্রেণিতে সর্বোচ্চ গ্রেড অর্জন করেছেন বলে একটি বার্তার সাথে।

আমাদের প্রোগ্রামটি রান করুন:

April earned the highest grade in the class. Their grade was 82.
Paul earned the highest grade in the class. Their grade was 82.

আমাদের প্রোগ্রামটি সফলভাবে শ্রেণিতে সর্বোচ্চ গ্রেড অর্জনকারী সমস্ত ছাত্রের নাম দেখায়।

উপসংহার

আপনি index() ব্যবহার করে একটি লিস্টে একটি আইটেমের সূচক মান বের করতে পারেন। min() বা max() মেথডের সাথে মিলিয়ে, আপনি একটি লিস্টে সবচেয়ে ছোট বা সবচেয়ে বড় আইটেমের সূচক মান বের করতে পারেন।

এখন আপনার पास একটি পাইথন বিশেষজ্ঞের মতো একটি লিস্টে সর্বোচ্চ মানের সূচক মান বের করার জ্ঞান রয়েছে!

  1. পাইথন লিস্ট থেকে সেকেন্ড-টু-লাস্ট এলিমেন্ট কীভাবে পাবেন?

  2. পাইথন লিস্ট থেকে লাস্ট এলিমেন্ট কীভাবে পাবেন?

  3. পাইথন লিস্ট থেকে সর্বোচ্চ মানবিশিষ্ট উপাদান খুঁজে বের করার পদ্ধতি

  4. পাইথন লিস্টে একটি উপাদানের ইনডেক্স খুঁজে বের করার পদ্ধতি