มีสองวิธีในการเรียงลำดับรายการจากน้อยไปมากหรือมากไปหาน้อยใน Python
sort()
sorted()
หากคุณต้องการเรียงลำดับสตริงหรือทูเพิล ให้ใช้ sorted()
ข้อมูลต่อไปนี้มีให้ที่นี่
- วิธีการของประเภทรายการที่เรียงลำดับรายการต้นฉบับ
sort()
- สร้างรายการที่เรียงลำดับใหม่ ฟังก์ชันในตัว: .
sorted()
- วิธีจัดเรียงสตริงและทูเพิล
การเรียงลำดับรายการดั้งเดิม วิธีการของรายการประเภท: sort()
sort() เป็นวิธีการประเภทรายการ
กระบวนการทำลายล้างซึ่งมีการเขียนรายการต้นฉบับใหม่
org_list = [3, 1, 4, 5, 2]
org_list.sort()
print(org_list)
# [1, 2, 3, 4, 5]
โปรดทราบว่า sort() จะคืนค่า None
print(org_list.sort())
# None
ค่าเริ่มต้นคือลำดับจากน้อยไปมาก หากคุณต้องการเรียงลำดับจากมากไปหาน้อย ให้ตั้งค่าอาร์กิวเมนต์ย้อนกลับเป็นจริง
org_list.sort(reverse=True)
print(org_list)
# [5, 4, 3, 2, 1]
สร้างรายการเรียงลำดับใหม่ ฟังก์ชันในตัว: sorted()
sorted() เป็นฟังก์ชันในตัว
ส่งกลับรายการที่เรียงลำดับเมื่อมีการระบุรายการที่จะเรียงลำดับเป็นอาร์กิวเมนต์ นี่เป็นกระบวนการที่ไม่ทำลายซึ่งจะไม่เปลี่ยนแปลงรายการเดิม
org_list = [3, 1, 4, 5, 2]
new_list = sorted(org_list)
print(org_list)
print(new_list)
# [3, 1, 4, 5, 2]
# [1, 2, 3, 4, 5]
เช่นเดียวกับ sort() ค่าดีฟอลต์คือลำดับจากน้อยไปมาก หากคุณต้องการเรียงลำดับจากมากไปหาน้อย ให้ตั้งค่าอาร์กิวเมนต์ย้อนกลับเป็นจริง
new_list_reverse = sorted(org_list, reverse=True)
print(org_list)
print(new_list_reverse)
# [3, 1, 4, 5, 2]
# [5, 4, 3, 2, 1]
วิธีจัดเรียงสตริงและทูเพิล
เนื่องจากสตริงและทูเพิลไม่เปลี่ยนรูปแบบ จึงไม่มีเมธอด sort() ที่สามารถเขียนออบเจกต์ดั้งเดิมได้
ในทางกลับกัน อาร์กิวเมนต์ของฟังก์ชัน sorted() ซึ่งสร้างรายการที่เรียงลำดับเป็นออบเจกต์ใหม่ อาจเป็นสตริงหรือทูเพิล เช่นเดียวกับรายการ อย่างไรก็ตาม เนื่องจาก sorted() ส่งคืนรายการ จึงจำเป็นต้องแปลงเป็นสตริงหรือทูเพิล
การเรียงลำดับสตริง
เมื่อมีการระบุสตริงเป็นอาร์กิวเมนต์ของฟังก์ชัน sorted() รายการจะถูกส่งคืนโดยเก็บอักขระแต่ละตัวของสตริงที่จัดเรียงไว้เป็นองค์ประกอบ
org_str = 'cebad'
new_str_list = sorted(org_str)
print(org_str)
print(new_str_list)
# cebad
# ['a', 'b', 'c', 'd', 'e']
หากต้องการเชื่อมรายการสตริงเป็นสตริงเดียว ให้ใช้เมธอด join()
new_str = ''.join(new_str_list)
print(new_str)
# abcde
หากคุณต้องการเรียงลำดับจากมากไปหาน้อย ให้ตั้งค่าอาร์กิวเมนต์ย้อนกลับเป็นจริง
new_str = ''.join(sorted(org_str))
print(new_str)
# abcde
new_str_reverse = ''.join(sorted(org_str, reverse=True))
print(new_str_reverse)
# edcba
ขนาดของสตริงถูกกำหนดโดยจุดโค้ด Unicode (รหัสอักขระ) ของอักขระ
การเรียงลำดับทูเพิล
ทูเพิลเหมือนกับสตริง การระบุทูเพิลเป็นอาร์กิวเมนต์ของฟังก์ชัน sorted() จะส่งกลับรายการองค์ประกอบที่จัดเรียง
org_tuple = (3, 1, 4, 5, 2)
new_tuple_list = sorted(org_tuple)
print(org_tuple)
print(new_tuple_list)
# (3, 1, 4, 5, 2)
# [1, 2, 3, 4, 5]
ในการแปลงรายการเป็น tuple ให้ใช้ tuple()
new_tuple = tuple(new_tuple_list)
print(new_tuple)
# (1, 2, 3, 4, 5)
หากคุณต้องการเรียงลำดับจากมากไปหาน้อย ให้ตั้งค่าอาร์กิวเมนต์ย้อนกลับเป็นจริง
new_tuple = tuple(sorted(new_tuple_list))
print(new_tuple)
# (1, 2, 3, 4, 5)
new_tuple_reverse = tuple(sorted(new_tuple_list, reverse=True))
print(new_tuple_reverse)
# (5, 4, 3, 2, 1)