2016-12-08 5 views
0
a = [0, 2, 4] 
b = list(map(lambda x: x+1, a)) 

слит список с = [0, 1, 2, 3, 4, 5]Объединить два списка питона

c = [a[0], b[0], a[1], b[1] ... ]

Может ли я достичь результата с функциональным программированием? Вместо того, чтобы просто зацикливать?

Заранее спасибо

ответ

0

Конечно, есть много способов. Вот простой список постижение:

>>> a = [0, 2, 4] 
>>> b = [1, 3, 5] 
>>> [p for pair in zip(a,b) for p in pair] 
[0, 1, 2, 3, 4, 5] 
>>> 

Или, если вы предпочитаете использовать itertools

>>> import itertools 
>>> list(itertools.chain.from_iterable(zip(a,b))) 
[0, 1, 2, 3, 4, 5] 
+0

Почему вниз голосования ? –

0

Поскольку вы ищете функциональный способ:

from operator import add 
reduce(add,zip(a,b),[]) 
+0

'TypeError: может только список конкатенаций (не« tuple ») в список' –

+0

использовать' import operator; operator.add' вместо метода dunder. –