สมมติว่าเรามีรายการ 2 มิติที่เก็บข้อมูลนักกีฬา ได้แก่ อันดับ อายุ ส่วนสูง แต่ละแถวเป็นข้อมูลของนักกีฬาแต่ละคน เรายังมีตัวเลข k อีกตัวหนึ่ง เราต้องจัดเรียงข้อมูลตามแอตทริบิวต์ที่ k
ตัวอย่างข้อมูลนักกีฬา:
| Rank | Age | Height |
|---|---|---|
| 1 | 25 | 190 |
| 2 | 35 | 180 |
| 3 | 33 | 185 |
| 4 | 26 | 175 |
| 5 | 35 | 180 |
ถ้า k = 1 (อายุ) ผลลัพธ์จะเป็น:
| Rank | Age | Height |
|---|---|---|
| 1 | 25 | 190 |
| 4 | 26 | 175 |
| 3 | 33 | 185 |
| 2 | 35 | 180 |
| 5 | 35 | 180 |
ขั้นตอนการแก้ปัญหา
- เรียกฟังก์ชัน sort() สำหรับอาเรย์ 2 มิติ info
- กำหนดฟังก์ชันที่จัดเรียงตามอาร์กิวเมนต์ที่ k แล้วส่งให้พารามิเตอร์ key ของ sort()
ตัวอย่างโค้ด
def solve(info, k):
info.sort(key=lambda x: x[k])
return info
info = [[1, 25, 190], [2, 35, 180], [3, 33, 185], [4, 26, 175], [5, 35, 180]]
k = 1
print(solve(info, k))
อินพุต
[[1, 25, 190],[2, 35, 180],[3, 33, 185],[4, 26, 175],[5, 35, 180]], 1
เอาต์พุต
[[1, 25, 190], [4, 26, 175], [3, 33, 185], [2, 35, 180], [5, 35, 180]]