Плоский список из вложенного
Альтернативным конструктором itertools.chain()
служит itertools.chain.from_iterable()
. Метод принимает один итерируемый объект. Сравните их вызовы:
>>> list(itertools.chain('ABC', 'DEF'))
['A', 'B', 'C', 'D', 'E', 'F']
>>> list(itertools.chain.from_iterable(['ABC', 'DEF']))
['A', 'B', 'C', 'D', 'E', 'F']
Последний конструктор удобно использовать для объединения списков:
>>> list_of_lists = [[1, 2], [3, 4, 5], [6, 7, 8, 9]]
>>> list(itertools.chain.from_iterable(list_of_lists))
[1, 2, 3, 4, 5, 6, 7, 8, 9]