Усиление этого question, я получил:
def pretty(d, steps = -1, indent = 0):
for key, value in d.iteritems():
c = 0
print '\t' * indent + str(key)
if isinstance(value, dict):
pretty(value, indent+1)
else:
print c
if(c == steps):
return
c += 1
print '\t' * (indent+1) + str(value)
который мечтает о печати до тех пор, пока не будет напечатано определенное количество значений исходного ключа. Например, без ограничения:
1
5299
1
1229
1
2068
1
7223
1
но когда steps = 2
, он будет печатать:
1
5299
1
1229
1
Причина, по которой его мечты не оправдались, заключается в том, что c
не является статической переменной (как в C, я пробовал static c = 0
и получил синтаксическую ошибку), поэтому при каждом вызове рекурсии c
создается снова, он не помнит его прежнее значение.
Как это сделать в Python?