เมื่อจำเป็นต้องจัดเรียงรายการพจนานุกรมตามค่าต่างๆ สามารถใช้ฟังก์ชันแลมบ์ดาได้
ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน -
ตัวอย่าง
from operator import itemgetter
my_list = [{ "name" : "Will", "age" : 56},
{ "name" : "Rob", "age" : 20 },
{ "name" : "Mark" , "age" : 34 },
{ "name" : "John" , "age" : 24 }]
print("The list sorted by age is : ")
print(sorted(my_list, key=lambda i: i['age']))
print("The list sorted by age and name is : ")
print(sorted(my_list, key=lambda i: (i['age'], i['name'])))
print("The list sorted by age in descending order is : ")
print(sorted(my_list, key=lambda i: i['age'],reverse=True)) ผลลัพธ์
The list sorted by age is :
[{'name': 'Rob', 'age': 20}, {'name': 'John', 'age': 24}, {'name': 'Mark', 'age': 34}, {'name': 'Will',
'age': 56}]
The list sorted by age and name is :
[{'name': 'Rob', 'age': 20}, {'name': 'John', 'age': 24}, {'name': 'Mark', 'age': 34}, {'name': 'Will',
'age': 56}]
The list sorted by age in descending order is :
[{'name': 'Will', 'age': 56}, {'name': 'Mark', 'age': 34}, {'name': 'John', 'age': 24}, {'name': 'Rob',
'age': 20}] คำอธิบาย
-
รายการองค์ประกอบพจนานุกรมถูกกำหนดและแสดงบนคอนโซล
-
ใช้วิธีการเรียงลำดับและระบุคีย์เป็น 'แลมบ์ดา'
-
รายการพจนานุกรมถูกจัดเรียงอีกครั้งโดยใช้แลมบ์ดาเป็นสองพารามิเตอร์
-
เอาต์พุตจะแสดงบนคอนโซล