บทความนี้ครอบคลุมการเรียงลำดับลิสต์สตริง ด้วย list.sort() และ sorted() รวมถึงการเรียงตามเกณฑ์ต่างๆ (ความยาว, ค่าตัวเลข, ฯลฯ)
1. ใช้ list.sort() (In-place sorting)
sort() เรียงลิสต์เดิมโดยตรง ไม่คืนค่าลิสต์ใหม่
เรียงขึ้น (Ascending)
strings = ['Python', 'C', 'Java', 'Javascript', 'React', 'Django', 'Spring'] strings.sort() print(strings)
['C', 'Django', 'Java', 'Javascript', 'Python', 'React', 'Spring']
เรียงลง (Descending)
strings = ['Python', 'C', 'Java', 'Javascript', 'React', 'Django', 'Spring'] strings.sort(reverse=True) print(strings)
['Spring', 'React', 'Python', 'Javascript', 'Java', 'Django', 'C']
2. ใช้ sorted() (คืนค่าลิสต์ใหม่)
sorted() ไม่เปลี่ยนลิสต์เดิม คืนค่าลิสต์ใหม่ที่เรียงแล้ว
เรียงขึ้น
strings = ['Python', 'C', 'Java', 'Javascript', 'React', 'Django', 'Spring'] sorted_strings = sorted(strings) print(sorted_strings)
เรียงลง
sorted_strings = sorted(strings, reverse=True) print(sorted_strings)
3. เรียงตามเกณฑ์พิเศษ (Key Function)
ใช้พารามิเตอร์ key ระบุฟังก์ชันสำหรับคำนวณค่าเปรียบเทียบ
เรียงตามความยาวสตริง (Length)
strings = ['Python', 'C', 'Java', 'Javascript', 'React', 'Django', 'Spring'] strings.sort(key=len) print(strings)
['C', 'Java', 'React', 'Python', 'Django', 'Spring', 'Javascript']
เรียงตามค่าตัวเลข (Numeric value)
strings = ['7', '34', '3', '23', '454', '12', '9'] sorted_strings = sorted(strings, key=int) print(sorted_strings)
['3', '7', '9', '12', '23', '34', '454']
สรุป
list.sort(): เรียง In-place, ประหยัดหน่วยความจำ, ไม่คืนค่าsorted(): คืนลิสต์ใหม่, ลิสต์เดิมไม่เปลี่ยน, ใช้กับ iterable ใดๆ ได้- ทั้งคู่รองรับ
keyและreverseพร้อมกัน