พจนานุกรมคือโครงสร้างข้อมูลที่ประกอบด้วยคู่คีย์และค่า เราสามารถจัดเรียงพจนานุกรมโดยใช้สองเกณฑ์ -
เรียงตามคีย์ − พจนานุกรมถูกเรียงลำดับจากน้อยไปหามากของคีย์ ค่านิยมไม่ได้รับการดูแล
จัดเรียงตามค่า − พจนานุกรมจะเรียงลำดับจากน้อยไปหามากของค่า
วิธีที่ 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}