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

เรียงลำดับทูเพิลในลำดับที่เพิ่มขึ้นตามคีย์ใดๆ ในโปรแกรม Python


ในบทช่วยสอนนี้ เราจะจัดเรียงรายการสิ่งอันดับตามลำดับที่เพิ่มขึ้นตามคีย์ดัชนีที่ 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 .

บทสรุป

ฉันหวังว่าคุณจะสนุกกับการกวดวิชา หากคุณมีคำถามใดๆ เกี่ยวกับบทแนะนำ โปรดระบุในส่วนความคิดเห็น