Этот вопрос напрямую задает вопрос о соединении двух списков. Однако поиск довольно высок, даже если вы ищете способ объединения многих списков (включая случай, когда вы присоединяетесь к нулевым спискам).
Я думаю, что лучше всего использовать списочные выражения:
>>> a = [[1,2,3], [4,5,6], [7,8,9]]
>>> [x for xs in a for x in xs]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Вы также можете создавать генераторы:
>>> map(str, (x for xs in a for x in xs))
['1', '2', '3', '4', '5', '6', '7', '8', '9']
Старый ответ
Рассмотрим этот более общий подход:
a = [[1,2,3], [4,5,6], [7,8,9]]
reduce(lambda c, x: c + x, a, [])
Будет выводить:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Обратите внимание, это также работает правильно, если a
равно []
или [[1,2,3]]
.
Однако это можно сделать более эффективно с помощью itertools
:
a = [[1,2,3], [4,5,6], [7,8,9]]
list(itertools.chain(*a))
Если вам не нужен list
, а просто итеративный, пропустите list()
.
Обновление
Альтернатива, предложенная Патриком Коллинзом в комментариях, также может сработать для вас:
sum(a, [])