Как в Python обьеденить строки из списков списка в один список?

Хах, название лучше не придумал)) Словом, имею
[str1, str2, [str21, str22, [str221], str23], str3, str4, [str41, str42], str5]
и т.д.
То есть список, внутри которого другой список либо строка. Мне нужно сделать из этого единый список со всеми этими элементами по порядку. Т.е. должно выйти:
[str1, str2, str21, str22, str221, str23, str3, str4, str41, str42, str5]
  • Вопрос задан
  • 2276 просмотров
Решения вопроса 2
def flatten(l):
    for el in l:
        if isinstance(el, collections.Iterable) and not isinstance(el, basestring):
            for sub in flatten(el):
                yield sub
        else:
            yield el


stackoverflow.com/questions/2158395/flatten-an-irr...
Ответ написан
Aldaron1
@Aldaron1
Ну или так...
def flat(arr):
    def flat_gen(arr):
        for elm in arr:
            if isinstance(elm,list):
                for inner in flat_gen(elm):
                    yield inner
            else:
                yield elm
    return [x for x in flat_gen(arr)]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы