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