เมื่อต้องการเรียงลำดับดิกชันนารีตามคีย์หรือค่า สามารถใช้ 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 สร้างลิสต์ใหม่