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

Python Sort(): คู่มือการเรียงลำดับ List

Python sort() method เรียงลำดับ list ตาม ascending order โดยค่า values คุณสามารถเรียง descending order ได้ด้วย reverse parameter sort() รับ function optional เพื่อกำหนด custom sort

นักเขียนโค้ดทุกคนจะเจอสถานการณ์ที่ต้องเรียงลำดับ items หรือข้อมูล การเรียงลำดับสำคัญในหลายบริบท คุณอาจต้องการเรียง usernames แบบ reverse alphabetical หรือ list email recipients แบบ alphabetical

Python มี built-in function ช่วย developers เรียง lists: sort() ฟังก์ชัน sort มี features หลายอย่างเพื่อปรับแต่งลำดับ list ให้เหมาะกับโปรแกรม

ในบทช่วยสอนนี้ เราจะครอบคลุมพื้นฐานการเรียงลำดับใน Python และวิธีใช้ฟังก์ชัน sort()

Python Sort List (เรียงลำดับ List)

ฟังก์ชัน sort() เรียง lists แบบ ascending order คุณสามารถใช้ custom sort หรือเรียง descending order ได้โดยระบุ additional parameters parameters เหล่านี้เป็น optional

มาดู syntax ของ sort() method:

sort(reverse=True, key=function)

sort() method รับ optional arguments สองตัว:

  • reverse: ระบุ True เพื่อเรียง list แบบ descending order
  • key: function ที่ใช้เรียง list

Python Sort List: Ascending Order (เรียงน้อยไปมาก)

ด้านล่าง เรา宣告 Python array ที่มี list ของตัวเลข ตัวเลขเหล่านี้ไม่ได้เรียงลำดับใดๆ เพื่อเรียง array เราใช้ sort() function:

data = [9, 12, 8, 4, 6]
data.sort()
print(data)

โค้ดคืนค่า:

[4, 6, 8, 9, 12]

บรรทัดแรก เรา宣告 list ตัวเลขที่เรียง random

ต่อมา เราใช้ sort() function โดยไม่มี arguments นี่จะเรียง original list แบบ ascending alphabetical order แล้วบรรทัดสุดท้ายพิมพ์ข้อมูลที่เรียงแล้ว

sort() function จะเปลี่ยน original array โดยตรง

Sort List in Python: Descending Order (เรียงมากไปน้อย)

Argument reverse เรียง list แบบ descending order เมื่อตั้งค่าเป็น True โดย default reverse เป็น False หมายถึง list จะเรียง ascending

ด้านล่างเรามี list ชื่อนักเรียน ต้องการเรียงแบบ reverse alphabetical order ใช้ sort() method กับ reverse argument:

students = ['Hannah', 'Arnold', 'Paul', 'Chris', 'Kathy']
students.sort(reverse=True)
print(students)

โค้ดคืนค่า list ชื่อนักเรียง reverse alphabetical:

['Paul', 'Kathy', 'Hannah', 'Chris','Arnold']

Sort Python Keys (เรียงด้วย Custom Keys)

เราสามารถเรียง lists ด้วยวิธีของตัวเองได้ เช่น เรียง array ตามความยาวของ strings ใน array

Sort By String Length (เรียงตามความยาว String)

ใช้ parameter key เพื่อกำหนด custom sort เอง ตัวอย่าง key argument ที่เรียง list ตามความยาว strings:

students = ['Sophie', 'Alexander', 'Paul', 'Chris', 'Ann']
sortedStudents = sorted(students, key=len)
print(sortedStudents)

โค้ดคืนค่า:

['Ann', 'Paul', 'Chris', 'Sophie', 'Alexander']

โค้ดเรียง list ตามความยาว strings Ann ชื่อ 3 ตัวอักษร อยู่ลำดับแรก Alexander ชื่อ 9 ตัวอักษร อยู่ลำดับสุดท้าย

ในตัวอย่าง เราบอกโค้ดให้เรียงด้วย len() ซึ่งเป็น built-in Python function สำหรับความยาวของ object แต่ละ string ใน array จะถูกส่งผ่าน len() แล้ว list ถูกเรียงใหม่

เราสามารถใช้ str.upper เรียง alphabetical order โดยตัวพิมพ์ใหญ่ในแต่ละ string หรือใช้ Python function อื่นๆ ก็ได้

Sort by JSON Contents (เรียงตามค่าใน JSON)

Keys ยังช่วยให้คุณกำหนด functions เองเพื่อระบุว่าการเรียงควรทำอย่างไร ตัวอย่างการเรียงที่จะ reverse JSON array ตามค่าเฉพาะ กรณีนี้คือ test scores ของนักเรียน:

def sortFunction(value):
    return value["test_score"]

students = [
    { "name": "Sophie", "test_score": 75 },
    { "name": "Ann", "test_score": 67 },
    { "name": "Chris", "test_score": 73 }
]
sortedStudents = sorted(students, key=sortFunction)
print(sortedStudents)

โค้ดคืนค่า:

[{'name': 'Ann', 'test_score': 67}, {'name': 'Chris', 'test_score': 73}, {'name': 'Sophie', 'test_score': 75}]

โค้ดเรียงนักเรียนตาม test scores

โปรแกรมกำหนด function ชื่อ sortFunction ซึ่งจะเรียง JSON array ตามค่า test_score เมื่อถูกเรียก แล้ว宣告 JSON array ชื่อ students พร้อมชื่อนักเรียนและ test scores

ต่อมา เราเรียง students ด้วย custom sort function โดยเรียก sortFunction เป็น key บรรทัดสุดท้ายพิมพ์ sorted list

สรุป

ในบทช่วยสอนนี้ เราแยกวิเคราะห์การใช้ sort() function ใน Python เพื่อเรียง lists เราอภิปรายการใช้ sort() กับชนิดข้อมูลต่างๆ และ parameter reverse สำหรับ reverse list order เรายังครอบคลุมการใช้ keys เพื่อเรียงลำดับแบบละเอียดมากขึ้น

เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการเขียนโค้ดใน Python อ่านคู่มือสมบูรณ์ how to learn Python