Computer >> Máy Tính >  >> Lập trình >> Python

Tìm độ sâu của từ điển bằng Python

Một từ điển python có thể được lồng vào nhau, tức là có những từ điển trong một từ điển. Trong bài viết này, chúng ta sẽ xem cách tính mức độ lồng trong một từ điển khi có một từ điển lồng nhau.

Với chuyển đổi chuỗi

Trong cách tiếp cận này, chúng tôi chuyển đổi toàn bộ từ điển thành một chuỗi. Sau đó, chúng tôi đếm số bên trái {cho biết các từ điển được lồng vào nhau ở cấp độ nào.

Ví dụ

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)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

The depth of dictionary: 3

Với đệ quy

Chúng ta có thể thiết kế một hàm sẽ tự gọi đệ quy để kiểm tra các giá trị của từ điển. Miễn là phần tử bên trong được đánh giá là một từ điển, hàm sẽ tự gọi nó và chúng tôi sẽ nhận được kết quả về độ sâu của từ điển.

Ví dụ

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))

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

The depth of dictionary: 3