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

การเรียงลำดับลิสต์สตริง (Sort List of Strings) ใน Python

บทความนี้ครอบคลุมการเรียงลำดับลิสต์สตริง ด้วย 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 พร้อมกัน