สมมติว่าเรามีรายการ 2d ที่มีข้อมูลเกี่ยวกับนักกีฬา ข้อมูลนี้คือ ยศ อายุ ส่วนสูง แต่ละแถวมีข้อมูลสำหรับนักกีฬาที่แตกต่างกัน เรายังมีเลข k อีกตัว เราต้องจัดเรียงข้อมูลตามแอตทริบิวต์ kth
ดังนั้นหากอินพุตเป็นแบบ
อันดับ | อายุ | ความสูง |
---|---|---|
1 | 25 | 190 |
2 | 35 | 180 |
3 | 33 | 185 |
4 | 26 | 175 |
5 | 35 | 180 |
และ k =1.
แล้วผลลัพธ์ที่ได้จะเป็น
อันดับ | อายุ | ความสูง |
---|---|---|
1 | 25 | 190 |
4 | 26 | 175 |
3 | 33 | 185 |
2 | 35 | 180 |
5 | 35 | 180 |
[[1, 25, 190], [4, 26, 175], [3, 33, 185], [2, 35, 180], [5, 35, 180]]
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
เรียกใช้ฟังก์ชัน sort() สำหรับอาร์เรย์ 2d ที่เรียกว่า info
-
กำหนดหนึ่งฟังก์ชันที่เรียงลำดับตามอาร์กิวเมนต์ kth และส่งผ่านไปยังพารามิเตอร์คีย์ของฟังก์ชัน 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]]