G'day,Recursive độ sâu từ điển python
Tôi cố gắng để tìm ra độ sâu đệ quy của một hàm mà lưới kéo một cuốn từ điển và tôi là một chút mất ... Hiện nay tôi có một cái gì đó như:
myDict = {'leve1_key1': {'level2_key1': {'level3_key1': {'level4_key_1': {'level5_key1': 'level5_value1'}}}}}
Và tôi muốn biết chỉ cách lồng điển lồng nhau nhất là ... vì vậy tôi thực hiện như sau ...
def dict_depth(d, depth):
for i in d.keys():
if type(d[i]) is dict:
newDict = d[i]
dict_depth(newDict, depth+1)
return depth
print dict_depth(myDict, 0)
chỉ có vấn đề là, vòng lặp đệ quy chỉ trả về sự trở lại của giá trị cuối cùng (0). nếu tôi đặt trong một tuyên bố in for i in d.keys():
thì tôi ít nhất có thể in giá trị cao nhất của đệ quy, nhưng trả lại giá trị là một vấn đề khác ...
Tôi chắc chắn điều này là đơn giản - Tôi vừa có jellybrain.
Cheers
Bạn sẽ không tìm thấy bất kỳ giới hạn nào ở đây (ngoại trừ bộ nhớ khả dụng). Mỗi từ điển lồng nhau là một đối tượng mới mà không biết gì về cha mẹ của nó. – usr
Nhưng mã của bạn có thể chạy vào ngăn xếp chồng chéo. Điều này không liên quan gì đến bất kỳ giới hạn từ điển nào. – usr