ในบทช่วยสอนนี้ เราจะจัดเรียงรายการสิ่งอันดับตามลำดับที่เพิ่มขึ้นตามคีย์ดัชนีที่ n ตัวอย่างเช่น เรามีรายการทูเพิล [(2, 2), (1, 2), (3, 1)] จากนั้น เราต้องเรียงลำดับโดยใช้องค์ประกอบดัชนีที่ 0 ผลลัพธ์สำหรับรายการนั้นจะเป็น [(1, 2), (2, 2), (3, 1)] .
เราสามารถทำได้โดยใช้ จัดเรียง กระบวนการ. เราต้องผ่าน กุญแจ ในขณะที่ให้รายการกับ เรียงลำดับ การทำงาน. กุญแจสำคัญคือดัชนีที่ใช้ในการจัดเรียง
จัดเรียง รับรายการและส่งคืนรายการนั้นโดยเรียงลำดับจากน้อยไปมาก หากคุณต้องการรับรายการจากมากไปหาน้อย ให้ตั้งค่า ย้อนกลับ อาร์กิวเมนต์คำหลักเป็น จริง ใน จัดเรียง ฟังก์ชัน
มาดูขั้นตอนการแก้ปัญหากัน
อัลกอริทึม
<ก่อน>1. เริ่มต้นรายการของทูเพิลและคีย์2 กำหนดฟังก์ชัน 2.1. ส่งคืนดัชนีที่คีย์-th number.3 ส่งรายการของทูเพิลและฟังก์ชันไปยังฟังก์ชันที่เรียงลำดับ เราต้องส่งชื่อฟังก์ชันไปยังคีย์อาร์กิวเมนต์ของคีย์เวิร์ด ทุกครั้งที่องค์ประกอบหนึ่ง (นี่คือทูเพิล) ไปยังฟังก์ชัน ฟังก์ชันส่งคืนหมายเลขดัชนีลำดับที่ 4 พิมพ์ผลลัพธ์ตัวอย่าง
## list of tuplestuples =[(2, 2), (1, 2), (3, 1)]## keykey =0## function ซึ่งส่งคืนหมายเลขดัชนีที่คีย์จาก tupledef k_th_index(one_tuple ):return one_tuple[key]## การเรียกฟังก์ชัน sorted## ผ่านรายการของ tuples เป็นอาร์กิวเมนต์แรก## ให้ฟังก์ชันเป็นอาร์กิวเมนต์คีย์เวิร์ดของ **key**sorted(tuples, key =k_th_index)
ผลลัพธ์
หากคุณเรียกใช้โปรแกรมข้างต้น คุณจะได้ผลลัพธ์ดังต่อไปนี้
[(1, 2), (2, 2), (3, 1)]
หากคุณเริ่มต้นคีย์ด้วยดัชนีที่มากกว่า len(tuple) - 1 คุณจะได้รับข้อผิดพลาดของดัชนี มาดูกันค่ะ
ตัวอย่าง
## รายการของ tuplestuples =[(2, 2), (1, 2), (3, 1)]## คีย์## การเริ่มต้นคีย์ซึ่งมีค่ามากกว่า len(tuple) - 1key =2## ฟังก์ชั่นที่ส่งคืนหมายเลขดัชนีที่คีย์จาก tupledef k_th_index(one_tuple):return one_tuple[key]## การเรียกฟังก์ชันที่เรียงลำดับ## ผ่านรายการของทูเพิลเป็นอาร์กิวเมนต์แรก## ให้ฟังก์ชันเป็นอาร์กิวเมนต์ของคีย์เวิร์ดไปยัง * *key**sorted(tuples, key =k_th_index)
ผลลัพธ์
หากคุณเรียกใช้โปรแกรมข้างต้น คุณจะได้ผลลัพธ์ดังต่อไปนี้
IndexError Traceback (การโทรล่าสุดล่าสุด)ใน 13 ## ส่งรายการของ tuples เป็นอาร์กิวเมนต์แรก14 ## ให้ฟังก์ชันเป็นอาร์กิวเมนต์ของคีย์เวิร์ดไปยัง **คีย์* *---> 15 sorted(tuples, key =k_th_index) in k_th_index(one_tuple)8 ## function ซึ่งส่งคืนหมายเลขดัชนีที่คีย์จาก tuple9 def k_th_index(one_tuple):- -> 10 ส่งคืน one_tuple[key]1112 ## การเรียกฟังก์ชันที่เรียงลำดับIndexError:ดัชนี tuple อยู่นอกช่วง
โปรแกรมด้านบนจะทำงานสำหรับ tuples จำนวนเท่าใดก็ได้และทุกขนาด tuples จนกว่าดัชนีจะไม่เกิน len(tuple) - 1 .
บทสรุป
ฉันหวังว่าคุณจะสนุกกับการกวดวิชา หากคุณมีคำถามใดๆ เกี่ยวกับบทแนะนำ โปรดระบุในส่วนความคิดเห็น