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