Как распаковать список внутри списка списков, а также элементов? - PullRequest
0 голосов
/ 22 декабря 2019

У меня есть список списков и переменную так:.

a = [[(1, 2), (3, 4), (5, 6)], [(7, 8), (9, 10)], (4,5), (1,2)]

outupt требуется

a=[(1, 2), (3, 4), (5, 6), (7, 8), (9, 10), (4,5), (1,2)]

Я попытался это решение, но он распаковывает все

1008 *[ Распаковка списка списков в список

Я также пытался распаковать, используя цикл for для индексов. Не удалось заставить его работать.

1014 *

1 Ответ

2 голосов
/ 22 декабря 2019

Вот рекурсивный метод, чтобы сгладить список (кортежи внутри списка не будут сглажены):

a = [[(1, 2), (3, 4), (5, 6)], [(7, 8), (9, 10)], (4,5), (1,2)]

def flatten(lst):
    for v in lst:
        if isinstance(v, list):
            yield from flatten(v)
        else:
            yield v

print([*flatten(a)])

Отпечатки:

[(1, 2), (3, 4), (5, 6), (7, 8), (9, 10), (4, 5), (1, 2)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...