Почему бы просто ...
def trav(root, s=""):
и тогда вы можете опустить s = ""
строку и назвать ее как trav(a)
? Также, если вы захотите просто вставить одну или две вещи, вы можете сделать меньше нарезки:
from numbers import Number
a = [[[1,2],[3,4]],[[5,6],[7,8]]]
def trav(root, s=""):
if isinstance(root, Number):
print("%s -> %s" % (root, s))
else:
trav(root[0], s + "0")
trav(root[1], s + "1")
trav(a)
Обратите внимание, что все это не имеет ничего общего с итераторами; Я не уверен, что ты там думал. s
здесь действует как аккумулятор аргумент; возможно, это был термин, о котором вы думали?