ในบทความนี้ คุณจะเรียนรู้วิธีจัดเรียง List ของ Dictionaries โดยใช้ Values ใน Python เราจะใช้เมธอดในตัวชื่อ sorted เพื่อจัดเรียง Dictionary
ขั้นตอนการจัดเรียง Dictionaries
เราจะทำตามขั้นตอนที่ระบุด้านล่างเพื่อจัดเรียง Dictionary โดยใช้ Values
- ส่ง List ที่มี Dictionaries และ Keys ให้เมธอด sorted
- เราสามารถส่ง Keys ได้สองวิธีที่แตกต่างกัน
- 1. ใช้ฟังก์ชัน lambda
- 2. ใช้เมธอด itemgetter
- เราสามารถส่ง Keys ได้สองวิธีที่แตกต่างกัน
มาดูตัวอย่าง
1. ใช้ Lambda Function
ตัวอย่างโค้ด
## List ของ Dictionaries
dicts = [
{"name": "John", "salary": 10000},
{"name": "Emma", "salary": 30000},
{"name": "Harry", "salary": 15000},
{"name": "Aslan", "salary": 10000}
]
## จัดเรียง List ข้างต้นโดยใช้ฟังก์ชัน 'lambda'
## เราสามารถสลับลำดับได้โดยส่ง 'reverse' เป็น 'True' ให้เมธอด 'sorted'
print(sorted(dicts, key=lambda item: item['salary']))
หากรันโปรแกรมข้างต้น เราจะได้ผลลัพธ์ดังนี้
[{'name': 'John', 'salary': 10000}, {'name': 'Aslan', 'salary': 10000}, {'name': 'Harry', 'salary': 15000}, {'name': 'Emma', 'salary': 30000}]
2. ใช้เมธอด itemgetter
กระบวนการจัดเรียง List ของ Dictionaries โดยใช้ itemgetter คล้ายกับขั้นตอนข้างต้น เราส่งค่าให้ key โดยใช้เมธอด itemgetter นั่นคือความแตกต่างเพียงอย่างเดียว มาดู
ตัวอย่างโค้ด
## import itemgetter จาก operator
from operator import itemgetter
## List ของ Dictionaries
dicts = [
{"name": "John", "salary": 10000},
{"name": "Emma", "salary": 30000},
{"name": "Harry", "salary": 15000},
{"name": "Aslan", "salary": 10000}
]
## จัดเรียง List ข้างต้นโดยใช้ 'itemgetter'
## เราสามารถสลับลำดับได้โดยส่ง 'reverse' เป็น 'True' ให้เมธอด 'sorted'
print(sorted(dicts, key=itemgetter('salary')))
ผลลัพธ์
หากรันโปรแกรมข้างต้น เราจะได้ผลลัพธ์ดังนี้
[{'name': 'John', 'salary': 10000}, {'name': 'Aslan', 'salary': 10000}, {'name': 'Harry', 'salary': 15000}, {'name': 'Emma', 'salary': 30000}]