โค้ด: เลือกทั้งหมด
a = [3, 2, 5 ,4, 7, 1]
sorted(a)
หากต้องการ Sort จากหลังไปหน้าสามารถทำได้ดังนี้
โค้ด: เลือกทั้งหมด
a = [3, 2, 5 ,4, 7, 1]
sorted(a, reverse=True)
เรายังสามารถทำการ Sort tuple ได้ด้วย
โค้ด: เลือกทั้งหมด
t = ('boy', 'apple', 'intel')
sorted(t)
คีย์ที่ใช้ในการ Sort
ในภาษา Python จะมีคีย์สำหรับใช้ในการ Sort ข้อมูลด้วย เช่น
- str.lower บังคับการเรียงลำดับเพื่อรักษาตัวพิมพ์ใหญ่ และตัวพิมพ์เล็กเหมือนกัน
- len เป็นคีย์ที่เรียงตามความยาวตัวอักษร
ตัวอย่างการใช้งานคีย์ str.lower
โค้ด: เลือกทั้งหมด
t = ('boy', 'apple', 'intel')
sorted(t, key=str.lower)
ตัวอย่างการใช้งานคีย์ len
โค้ด: เลือกทั้งหมด
t = ('boy', 'apple', 'intel')
sorted(t, key=len)
นอกจากนั้น เรายังสามารถกำหนดเงื่อนไขในการ Sort ข้อมูลได้ด้วย ดังตัวอย่าง
โค้ด: เลือกทั้งหมด
student_tuples = [
('john', 'A', 15),
('jane', 'B', 12),
('dave', 'B', 10),
]
sorted(student_tuples, key=lambda student: student[2]) #เรียงโดยใช้ช่องที่ 3 คือ อายุ
และเรายังสามารถใช้เทคนิคนี้ทำงานกับ objects ได้ดังตัวอย่าง
โค้ด: เลือกทั้งหมด
student_objects = [
Student('john', 'A', 15),
Student('jane', 'B', 12),
Student('dave', 'B', 10),
]
class Student:
def __init__(self, name, grade, age):
self.name = name
self.grade = grade
self.age = age
sorted(student_objects, key=lambda student: student.age)
อธิบาย
สร้าง class Student ขึ้นมา โดยกำหนดฟังก์ชั่นหลักโดยกำหนดค่าพารามิเตอร์ของฟังก์ชั่น (self, name, grade, age)
- ให้ตัวแปร name แทนพารามิเตอร์ name
- ให้ตัวแปร grade แทนพารามิเตอร์ grade
- ให้ตัวแปร age แทนพารามิเตอร์ age
ต่อมา ทำการ sort ข้อมูลด้วยคำสั่ง sorted ให้ใช้ข้อมูลจาก student_objects แล้วเรียงด้วยคีย์ lambda โดยเงื่อนไขในการเรียงคือ เรียงตามคำสั่งใน class Student ตามลำดับตัวแปร age