Я знаю, что я катаюсь на тонком льду, говоря, что ваше решение вашей проблемы неверно, но здесь говорится: Проблема с вашим исходным кодом заключалась в следующем:
count=count+2
nested(element,count)
Что должно было быть:
nested(element, count + 2)
Не требуется глобально. Проблема с вашим решением состоит в том, что [11,12,13]
все печатают на одном уровне (хорошо), а [1,...,2,...,3]
нет, даже если они находятся на одном уровне списка. Я предлагаю более простое решение:
def nested(the_list, count):
for element in the_list:
if isinstance(element, list):
nested(element, count + 2)
else:
print(" " * count, element)
familyName = [1, [11, 12, 13], 2, [21, [211, 212]], 3]
nested(familyName, 2)
с выводом:
% python3 test.py
1
11
12
13
2
21
211
212
3
%
Что оправдывает рекурсивное решение. Но не стесняйтесь указывать, как я ошибаюсь, наконец объяснив нам, что ваша программа должна была делать.