Вам нужно будет лучше отформатировать свой пример, и вы, вероятно, решите свою проблему в процессе.Поскольку else:
может следовать как if
, так и 'for`, этот код может интерпретироваться по-разному в зависимости от того, как он отступает.
for each_item in movies:
if isinstance(each_item , list):
for nested_item in each_item:
if isinstance(nested_item , list):
for each_d in nested_item:
print(each_d)
else:
print(nested_item)
else:
print(each_item)
против:
for each_item in movies:
if isinstance(each_item , list):
for nested_item in each_item:
if isinstance(nested_item , list):
for each_d in nested_item:
print(each_d)
else:
print(nested_item)
else:
print(each_item)
ТамЕсть и другие возможности.Оба из них работают для меня и дают разные результаты.
Между тем, если я понимаю ваше намерение, вы, вероятно, захотите сделать что-то вроде следующего:
def iterate_recursive(l):
for item in l:
if isinstance(item, list):
for nested_item in iterate_recursive(item):
yield nested_item
else:
yield item
for item in iterate_recursive(movies):
print item
Какие выходные данные:
the holy grail
1975
terry jones & Terry gilliam
91
gilliam chapman
michael palin
john cleese
terry gilliam
eric idle
terry jones