ในบทช่วยสอนนี้ เราจะเรียนรู้เกี่ยวกับเมธอด sort() ของ list มาดูรายละเอียด เมธอด sort ใช้เรียง list ใดๆ แบบ ascending หรือ descending มีหลายกรณีของ sort() พร้อมหรือไม่พร้อม พารามิเตอร์ตัวเลือก
เมธอด sort เป็นเมธอด in-place เปลี่ยนแปลง list ต้นฉบับโดยตรง
ลองดูทีละอย่าง
sort() แบบค่าเริ่มต้น
เมธอด sort โดยไม่มีพารามิเตอร์ตัวเลือก จะเรียง list แบบ ascending ลองดูตัวอย่าง
ตัวอย่าง
# เริ่มต้น list numbers = [4, 3, 5, 1, 2] # เรียงตัวเลข numbers.sort() # พิมพ์ numbers print(numbers)
ผลลัพธ์
การรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้
[1, 2, 3, 4, 5]
พารามิเตอร์ reverse กับ sort()
เราสามารถเรียงแบบ descending ด้วยพารามิเตอร์ reverse ส่ง reverse=True เพื่อเรียง descending
ตัวอย่าง
# เริ่มต้น list numbers = [4, 3, 5, 1, 2] # เรียง descending numbers.sort(reverse=True) # พิมพ์ numbers print(numbers)
ผลลัพธ์
การรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้
[5, 4, 3, 2, 1]
พารามิเตอร์ key กับ sort()
เมธอด sort รับพารามิเตอร์ตัวเลือก key ใช้บอก sort ว่าจะเรียงตามค่าไหน
เช่น มี list of dictionaries ต้องการเรียงตามค่าเฉพาะ ส่ง key เป็นฟังก์ชันที่คืนค่าที่ต้องการเรียง
ตัวอย่าง
# เริ่มต้น list
numbers = [{'a': 5}, {'b': 1, 'a': 1}, {'c': 3, 'a': 3}, {'d': 4, 'a': 4}, {'e': 2, 'a': 2}]
# เรียง list of dict ตามค่า 'a'
numbers.sort(key=lambda dictionary: dictionary['a'])
# พิมพ์ numbers
print(numbers)
ผลลัพธ์
การรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้
[{'b': 1, 'a': 1}, {'e': 2, 'a': 2}, {'c': 3, 'a': 3}, {'d': 4, 'a': 4}, {'a': 5}]
สรุป
sort() เรียง in-place เปลี่ยน list ต้นฉบับ ใช้ key และ reverse ควบคุมการเรียง หากมีข้อสงสัย กรุณาแจ้งในส่วนความคิดเห็น