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

পাইথনে নেস্টেড লিস্ট থেকে সেকেন্ড লো웨স্ট গ্রেডের ছাত্রের নাম প্রিন্ট করার প্রোগ্রাম

ধরুন আমাদের প্রতিটি ছাত্রের নাম এবং গ্রেড একটি নেস্টেড লিস্টে আছে। আমাদের সেকেন্ড লো웨স্ট গ্রেড পাওয়া ছাত্রদের নাম দেখাতে হবে। যদি একাধিক ছাত্রের সেকেন্ড লো웨স্ট গ্রেড থাকে, তবে সেগুলোকে অ্যালফাবেটিক্যাল অর্ডারে সর্ট করে প্রতিটি নাম নতুন লাইনে প্রিন্ট করতে হবে।

উদাহরণস্বরূপ, যদি ইনপুট students = [['Amal',37],['Bimal',37],['Tarun',36],['Akash',41],['Himadri',39]] হয়, তবে আউটপুট হবে Amal, Bimal উভয়ের সেকেন্ড লোवेस्ट স্কোর ৩৭, অ্যালফাবেটিক্যাল অর্ডারে।

সমাধানের ধাপসমূহ

  • min_mark := min(x[1] for x in students)
  • students := [x for x in students if x[1] > min_mark]
  • min2_mark := min(x[1] for x in students)
  • students := sorted([x[0] for x in students if x[1] == min2_mark])
  • প্রতিটি x ইন students প্রিন্ট করুন

উদাহরণ

নিচের ইমপ্লিমেন্টেশনটি দেখুন ভালো বুঝার জন্য:

def solve(students):
    min_mark = min(x[1] for x in students)
    students = [x for x in students if x[1] > min_mark]
    min2_mark = min(x[1] for x in students)
    students = sorted([x[0] for x in students if x[1] == min2_mark])
    for x in students:
        print(x)

students = [['Amal',37],['Bimal',37],['Tarun',36],['Akash',41],['Himadri',39]]
solve(students)

ইনপুট

[['Amal',37],['Bimal',37],['Tarun',36],['Akash',41],['Himadri',39]]

আউটপুট

Amal
Bimal
  1. পাইথন প্রোগ্রাম: ইন্টিজার লিস্ট থেকে ডুপ্লিকেট প্রিন্ট করা

  2. পাইথনে লিস্ট থেকে N বড় এলিমেন্ট বের করা

  3. পাইথন প্রোগ্রাম: লিস্ট থেকে অনন্য (Unique) মান প্রিন্ট করা

  4. পাইথনে একটি লিস্টের সব সাবলিস্ট প্রিন্ট করার প্রোগ্রাম