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

เรียงลำดับดิกชันนารีใน Python ตามคีย์หรือค่า


เมื่อต้องการเรียงลำดับดิกชันนารีตามคีย์หรือค่า สามารถใช้ sorted() กับ items() และระบุ key parameter

ตัวอย่างโค้ด

def sort_dict():
    d = {}
    d[2] = 56
    d[1] = 2
    d[5] = 12
    d[4] = 24
    d[6] = 18
    d[3] = 323

    print("Sorted by key:")
    for k in sorted(d):
        print((k, d[k]))

sort_dict()

ผลลัพธ์

Sorted by key:
(1, 2)
(2, 56)
(3, 323)
(4, 24)
(5, 12)
(6, 18)

คำอธิบาย

  • สร้างดิกชันนารีและเพิ่มคีย์-ค่าไม่เรียงลำดับ

  • sorted(d) เรียงคีย์จากน้อยไปมาก (default)

  • วนลูปพิมพ์คู่ (key, value) ตามลำดับคีย์ที่เรียงแล้ว

  • หากต้องการเรียงตามค่า: sorted(d.items(), key=lambda x: x[1])

  • Python 3.7+ รักษาลำดับการแทรก (insertion order) แต่ sorted สร้างลิสต์ใหม่