У меня сложилось впечатление, что этот фрагмент можно улучшить с помощью понимания списка и функции, основанной на ответах. Затем я изменил этот фрагмент:
l=[['rfn'], ['abod'], [['splash', 'aesthet', 'art']], [['splash', 'aesthet', 'anim']], ['fabl'], ['clean']]
flat_list = []
for sublist in l:
print("sublist: ", sublist)
for item in sublist:
if type(item)== list:
for i in item:
flat_list.append(i)
else:
flat_list.append(item)
print(flat_list)
На новую версию, которая не работает:
l=[['rfn'], ['abod'], [['splash', 'aesthet', 'art']], [['splash', 'aesthet', 'anim']], ['fabl'], ['clean']]
def foo(item):
flat_l=[]
if type(item)== list:
for i in item:
flat_l.append(i)
else:
flat_l.append(item)
return flat_l
flat_list=[item for sublist in l foo(item) for item in sublist]
print(flat_list)
Который жалуется из-за синтаксической ошибки:
Файл "", строка 33 flat_list=[item for sublist in l foo(item) for item in sublist]
^ SyntaxError: неверный синтаксис