พจนานุกรมคือโครงสร้างข้อมูลที่ประกอบด้วยคู่คีย์และค่า เราสามารถจัดเรียงพจนานุกรมโดยใช้สองเกณฑ์ -
เรียงตามคีย์ − พจนานุกรมถูกเรียงลำดับจากน้อยไปหามากของคีย์ ค่านิยมไม่ได้รับการดูแล
จัดเรียงตามค่า − พจนานุกรมจะเรียงลำดับจากน้อยไปหามากของค่า
วิธีที่ 1 - จัดเรียงพจนานุกรมตามคีย์
ในแนวทางนี้ พจนานุกรมจะเรียงลำดับคีย์จากน้อยไปหามาก
ป้อนข้อมูล:
{2:90, 1: 100, 8: 3, 5: 67, 3: 5} ผลลัพธ์:
{1: 100, 2: 90, 3: 5, 5: 67, 8: 3} ดังที่แสดงไว้ข้างต้น เราจะเห็นการจัดเรียงพจนานุกรมตามคีย์ต่างๆ
ตัวอย่าง
dic={2:90, 1: 100, 8: 3, 5: 67, 3: 5}
dic2={}
for i in sorted(dic):
dic2[i]=dic[i]
print(dic2) ผลลัพธ์
{1: 100, 2: 90, 3: 5, 5: 67, 8: 3} คำอธิบายของบรรทัดโค้ดอย่างชาญฉลาด
-
ประกาศพจนานุกรมที่จะจัดเรียง
-
ประกาศพจนานุกรมว่างที่จะเพิ่มคู่ค่าคีย์ที่เรียงลำดับแล้ว
-
sorted(dic) มีคีย์ทั้งหมดของ dic ตามลำดับ มีเฉพาะคีย์เท่านั้น ไม่ใช่คู่คีย์ค่า sorted(dic) จะมี [1,2,3,5,8]
-
สำหรับแต่ละคีย์ในลำดับการจัดเรียง ให้เพิ่มคีย์และค่าที่เกี่ยวข้องลงใน dic2
-
dic2 มีคู่คีย์-ค่าทั้งหมดตามลำดับคีย์
วิธีที่ 2 - จัดเรียงพจนานุกรมตามค่า
ในแนวทางนี้ พจนานุกรมจะเรียงลำดับจากน้อยไปหามาก
ป้อนข้อมูล:
{2:90, 1: 100, 8: 3, 5: 67, 3: 5}
เอาท์พุท:
{8:3, 3:5 ,5:67 , 2:90, 1:100} ดังที่แสดงไว้ข้างต้น เราจะเห็นการจัดเรียงพจนานุกรมตามค่าของพจนานุกรม
-
เราใช้ sorted() และ items() วิธีการเรียงพจนานุกรมตามค่า
-
รายการ () ใช้เพื่อดึงรายการหรือค่าของพจนานุกรม
-
คีย์=แลมบ์ดา x:x[1] เป็นกลไกการจัดเรียงที่ใช้ฟังก์ชันแลมบ์ดา
-
สิ่งนี้ทำให้เราคู่ของค่าคีย์ eich ถูกแปลงเป็นพจนานุกรมโดยใช้ dict()
ตัวอย่าง
dic={2:90, 1: 100, 8: 3, 5: 67, 3: 5}
dic2=dict(sorted(dic.items(),key= lambda x:x[1]))
print(dic2) ผลลัพธ์
{8: 3, 3: 5, 5: 67, 2: 90, 1: 100}