2015-12-04 4 views
0

Что биений способ преобразования:питона список понимание для цикла в цикл

[(1, 2), (3, 4)] => [1, 2, 3, 4] 

Я попытался

[i for i in row for row in [(1, 2), (3, 4)]] 

, но это не работает.

+1

Да, это какой-то вопрос. Я просто не могу его найти (я не знаю, как выразить этот вопрос). Спасибо за ваше упоминание. –

ответ

1

список понимание является лучшим способом сделать это

>>> L = [(1, 2), (3, 4)] 
>>> [j for i in L for j in i] 
[1, 2, 3, 4] 

Обратите внимание, что «внешний контур» переменная должна прийти первым

1
>>> [i for row in [(1, 2), (3, 4)] for i in row] 
[1, 2, 3, 4] 
>>> 

[i for row in [(1, 2), (3, 4)] for i in row] 
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^ # you need define 'row' before define 'i' 
2

Вы можете сделать это также с цепью от itertools

from itertools import chain 
a = [(1, 2), (3, 4)] 
print(list(chain.from_iterable(a))) 

>>>>[1, 2, 3, 4] 
Смежные вопросы