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

ค้นหาความลึกของพจนานุกรมใน Python


พจนานุกรมหลามสามารถซ้อนกันได้ เช่น มีพจนานุกรมอยู่ภายในพจนานุกรม ในบทความนี้ เราจะมาดูวิธีการคำนวณระดับการซ้อนในพจนานุกรมเมื่อมีพจนานุกรมแบบซ้อน

ด้วยการแปลงสตริง

ในแนวทางนี้ เราจะแปลงพจนานุกรมทั้งหมดเป็นสตริง จากนั้นเราจะนับจำนวนด้านซ้าย { ที่ระบุว่าพจนานุกรมซ้อนกันอยู่ระดับใด

ตัวอย่าง

dictA = {1: 'Sun', 2: {3: {4:'Mon'}}}
dictStr = str(dictA)
cnt = 0
for i in dictStr :
   if i == "{":
      cnt += 1
print("The depth of dictionary: ",cnt)

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

The depth of dictionary: 3

ด้วยการเรียกซ้ำ

เราสามารถออกแบบฟังก์ชันที่จะเรียกตัวเองซ้ำ ๆ เพื่อตรวจสอบค่าของพจนานุกรม ตราบใดที่องค์ประกอบภายในถูกประเมินว่าเป็นพจนานุกรม ฟังก์ชันจะเรียกตัวเองและเราจะได้รับผลลัพธ์สำหรับความลึกของพจนานุกรม

ตัวอย่าง

def finddepth(dictA):
   if isinstance(dictA, dict):
      return 1 + (max(map(finddepth, dictA.values()))
         if dictA else 0)

   return 0

dictA = {1: 'Sun', 2: {3: {4:'Mon'}}}
print("The depth of dictionary: ",finddepth(dictA))

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

The depth of dictionary: 3