Допустим, у меня есть следующий Python словарь:
d = {1: {2: {3: {}}, 4: {5: {}}, 6: {}}, 7: {8: {}}}
Я могу рекурсивно пройти по словарю, используя следующую функцию:
def recurse(d):
for k, v in d.items():
print(f"key: {k}")
if v:
recurse(v, level + 1)
Я хочу напечатать только ключ, если мы на итерации ДАЖЕ. Похоже, я могу сделать это, используя глобальную переменную count
:
count = 0
def recurse_toggle(d):
global count
for k, v in d.items():
if count % 2 == 0:
print(f"key: {k} (count={count})")
count += 1
if v:
recurse_toggle(v)
# key: 1 (count=0)
# key: 3 (count=2)
# key: 5 (count=4)
# key: 7 (count=6)
Однако я не хочу использовать глобальную переменную, потому что это плохая практика. Как я могу реорганизовать эту функцию, чтобы сделать это БЕЗ использования глобальной переменной? Примечание. Мне не нужен параметр count
(может, лучше передать параметр is_even
?).