Giả sử chúng ta có tên và điểm của từng học sinh trong một danh sách lồng nhau, chúng ta phải hiển thị tên của bất kỳ học sinh nào có điểm thấp thứ hai. Nếu có nhiều hơn một học sinh có điểm thấp thứ hai, hãy sắp xếp lại các học sinh này theo thứ tự bảng chữ cái và in mỗi tên trên một dòng mới.
Vì vậy, nếu đầu vào giống như student =[['Amal', 37], ['Bimal', 37], ['Tarun', 36], ['Akash', 41], ['Himadri', 39]] , thì đầu ra sẽ là Amal, Bimal đều có điểm ít thứ hai là 37, chúng được đặt theo thứ tự bảng chữ cái.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- min_mark:=số điểm tối thiểu cho tất cả x ở học sinh
- sinh viên:=danh sách sinh viên x với tất cả x trong sinh viên nếu điểm> min_mark
- min2_mark:=số điểm tối thiểu cho tất cả x ở học sinh
- sinh viên:=sắp xếp danh sách [với tên của x cho tất cả x trong số sinh viên nếu điểm của x bằng
- min2_mark]
- đối với mỗi x trong học sinh, thực hiện
- hiển thị x
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn
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)
Đầu vào
[['Amal',37],['Bimal',37],['Tarun',36],['Akash',41],['Himadri',39]]
Đầu ra
Amal Bimal