
เขียนโปรแกรมภาษา Python ตอนที่ 86 เรียงลำดับข้อมูลใน List ด้วยเมธอด sort()
เมธอด sort()
ใช้สำหรับเรียงลำดับข้อมูลในลิสต์ โดยมีรูปแบบการใช้งานดังนี้
list.sort(reverse=True|False, key=Function)
reverse
(จะระบุหรือไม่ก็ได้) ถ้าระบุ reverse=True จะเรียงลำดับจากมากไปน้อย แต่ถ้าไม่ระบุ ค่าเริ่มต้นจะเป็น reverse=False จะเรียงลำดับจากน้อยไปมากkey
คือฟังก์ชันสำหรับระบุเกณฑ์การเรียงลำดับ (จะระบุหรือไม่ก็ได้)
โดยค่าเริ่มต้น เมธอด sort() จะเรียงลำดับข้อมูลในลิสต์จากน้อยไปมาก ดังตัวอย่าง
cars = ['Toyota', 'Honda', 'Suzuki', 'Benz'] cars.sort() print(cars)
- บรรทัดที่ 2 สั่งให้เรียงลำดับข้อมูลในลิสต์ด้วยเมธอด
sort()
โดยไม่ระบุคีย์เวิร์ดใด ๆ ผลคือจะเรียงลำดับจากน้อยไปมาก
ผลลัพธ์
[‘Benz’, ‘Honda’, ‘Suzuki’, ‘Toyota’]
ถ้าต้องการเรียงลำดับจากมากไปน้อย ให้ระบุคีย์เวิร์ด reverse=True
cars = ['Toyota', 'Honda', 'Suzuki', 'Benz'] cars.sort(reverse=True) print(cars)
- บรรทัดที่ 2 สั่งให้เรียงลำดับข้อมูลในลิสต์ด้วยเมธอด
sort()
โดยระบุคีย์เวิร์ดreverse=True
ผลคือจะเรียงลำดับจากมากไปน้อย
[‘Toyota’, ‘Suzuki’, ‘Honda’, ‘Benz’]
เราสามารถกำหนดกฎเกณฑ์ในการเรียงลำดับนอกเหนือจากการเรียงลำดับตามปกติได้ โดยการสร้างฟังก์ชันขึ้นมาใช้งาน และเมื่อเรียกใช้เมธอด sort()
ให้กำหนดฟังก์ชันดังกล่าวให้กับคีย์เวิร์ด key
ตัวอย่าง
def myFunction(x): return len(x) cars = ['Toyota', 'Honda', 'Suzuki', 'Benz'] cars.sort(key=myFunction) print(cars)
- บรรทัดที่ 1-2 สร้างฟังก์ชันขึ้นมา 1 ฟังก์ชัน คืนค่ากลับไปเป็นความยาวของค่าที่ส่งเข้ามา
- บรรทัดที่ 5 ใช้เมธอด
sort()
เพื่อเรียงลำดับข้อมูลในลิสต์ โดยระบุคีย์เวิร์ดkey=myFunction
ผลลัพธ์คือข้อมูลในลิสต์จะถูกเรียงลำดับโดยพิจารณาจากความยาวของค่าแต่ละค่า ค่าที่มีความยาวน้อยกว่าจะถูกเรียงไว้ก่อน
[‘Benz’, ‘Honda’, ‘Toyota’, ‘Suzuki’]
ถ้าต้องการให้เรียงแบบกลับด้านก็ระบุคีย์เวิร์ด reverse=True
เพิ่มเข้าไปอีก
def myFunction(x): return len(x) cars = ['Toyota', 'Honda', 'Suzuki', 'Benz'] cars.sort(reverse=True,key=myFunction) print(cars)
ผลลัพธ์
[‘Toyota’, ‘Suzuki’, ‘Honda’, ‘Benz’]
ตัวอย่างการเรียงลำดับข้อมูลรถตามปี
def myFunction(x): return x['year'] cars = [ {'car': 'Yaris', 'year': 2021}, {'car': 'Vios', 'year': 2020}, {'car': 'Veloz', 'year': 2022}, {'car': 'Fortuner', 'year': 2018}, ] cars.sort(key=myFunction) print(cars)
ผลลัพธ์
[{‘car’: ‘Fortuner’, ‘year’: 2018}, {‘car’: ‘Vios’, ‘year’: 2020}, {‘car’: ‘Yaris’, ‘year’: 2021}, {‘car’: ‘Veloz’, ‘year’: 2022}]