การเรียงลำดับรายการใน Python: ความแตกต่างระหว่าง sorted และ sorted

ธุรกิจ

มีสองวิธีในการเรียงลำดับรายการจากน้อยไปมากหรือมากไปหาน้อยใน 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)