Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมแสดงชื่อนักเรียนเกรดน้อยที่สุดอันดับ 2 จาก Nested List ใน Python

สมมติว่าเรามีชื่อและเกรดของนักเรียนใน Nested List ต้องแสดงชื่อนักเรียนที่มีเกรดน้อยที่สุดอันดับ 2 (Second Lowest) ห้ามีหลายคน เรียงตามตัวอักษร พิมพ์ทีละบรรทัด

ตัวอย่าง students = [['Amal',37],['Bimal',37],['Tarun',36],['Akash',41],['Himadri',39]] ผลลัพธ์ = Amal, Bimal (เกรด 37 เป็นอันดับ 2 น้อยที่สุด)

ขั้นตอนการแก้ปัญหา

  • min_mark := ค่าเกรดน้อยที่สุดจาก students
  • students := กรองเฉพาะที่เกรด > min_mark
  • min2_mark := ค่าเกรดน้อยที่สุดของที่เหลือ
  • students := เรียงชื่อที่มีเกรด = min2_mark
  • พิมพ์แต่ละชื่อ

ตัวอย่างโค้ด

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