Как сгладить список кортежей в список pythonic

Учитывая следующий список кортежей:

INPUT = [(1,2),(1,),(1,2,3)] 

Как я сглажу его в список?

 OUTPUT ==> [1,2,1,1,2,3] 

Есть ли один лайнер, чтобы сделать выше?

Похожие предложениягелла: Свернуть список кортежей в Python

5 Solutions collect form web for “Как сгладить список кортежей в список pythonic”

Вы можете использовать понимание списка :

 >>> INPUT = [(1,2),(1,),(1,2,3)] >>> [y for x in INPUT for y in x] [1, 2, 1, 1, 2, 3] >>> 

itertools.chain.from_iterable также часто используется в таких случаях:

 >>> from itertools import chain >>> INPUT = [(1,2),(1,),(1,2,3)] >>> list(chain.from_iterable(INPUT)) [1, 2, 1, 1, 2, 3] >>> 

Однако это не совсем однострочный.

 >>> INPUT = [(1,2),(1,),(1,2,3)] >>> import itertools >>> list(itertools.chain.from_iterable(INPUT)) [1, 2, 1, 1, 2, 3] 
 >>> INPUT = [(1,2),(1,),(1,2,3)] >>> import operator as op >>> reduce(op.add, map(list, INPUT)) [1, 2, 1, 1, 2, 3] 

вы можете использовать sum которая суммирует все элементы, если это список списков (однопользовательский).

 sum([(1,2),(1,),(1,2,3)], ()) 

или конвертировать в список:

 list(sum([(1,2),(1,),(1,2,3)], ())) 

Добавление списков работает в python.

Примечание . Это неэффективно, а некоторые говорят, что они нечитаемы.

Не в одной строке, а в двух:

 >>> out = [] >>> map(out.extend, INPUT) ... [None, None, None] >>> print out ... [1, 2, 1, 1, 2, 3] 

Объявите объект списка и используйте расширение.

  • Python разбивает файл на список
  • Вставить элемент в список, основанный на предыдущем и следующем элементах
  • Транспонирование матрицы в Python
  • Получение первого значения None из списка
  • Python проверяет первый и последний индекс списка
  • уникальные значения между двумя списками
  • Как найти позицию элемента в списке, в Python?
  • Как создать собственный класс списка в python?
  • Объединение двух списков и удаление дубликатов без удаления дубликатов в исходном списке
  • Определите, присутствуют ли все элементы в списке и в том же порядке в другом списке
  • Как проверить, присутствует ли индекс списка или нет
  • Python - лучший язык программирования в мире.