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

จะเรียงลำดับพจนานุกรมใน Python ได้อย่างไร?


พจนานุกรมคือโครงสร้างข้อมูลที่ประกอบด้วยคู่คีย์และค่า เราสามารถจัดเรียงพจนานุกรมโดยใช้สองเกณฑ์ -

เรียงตามคีย์ − พจนานุกรมถูกเรียงลำดับจากน้อยไปหามากของคีย์ ค่านิยมไม่ได้รับการดูแล

จัดเรียงตามค่า − พจนานุกรมจะเรียงลำดับจากน้อยไปหามากของค่า

วิธีที่ 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}