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

วิธีจัดเรียง List ของ Dictionaries โดยใช้ Values ใน Python


ในบทความนี้ คุณจะเรียนรู้วิธีจัดเรียง List ของ Dictionaries โดยใช้ Values ใน Python เราจะใช้เมธอดในตัวชื่อ sorted เพื่อจัดเรียง Dictionary

ขั้นตอนการจัดเรียง Dictionaries

เราจะทำตามขั้นตอนที่ระบุด้านล่างเพื่อจัดเรียง Dictionary โดยใช้ Values

  • ส่ง List ที่มี Dictionaries และ Keys ให้เมธอด sorted
    • เราสามารถส่ง Keys ได้สองวิธีที่แตกต่างกัน
      • 1. ใช้ฟังก์ชัน lambda
      • 2. ใช้เมธอด itemgetter

มาดูตัวอย่าง

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}]