2015-06-17 2 views

ответ

6

Вы можете использовать zip для этого:

list1 = [['a','b','c'],[1,2,3]] 
list2 = [['d','e','f'],[4,5,6]] 
list3 = [a + b for a, b in zip(list1, list2)] 

Выход list3 будет:

[['a', 'b', 'c', 'd', 'e', 'f'], [1, 2, 3, 4, 5, 6]] 
+0

Если '' list1' и list2' имеют разную длину, оставшаяся часть из нее будет только объединять до длины самого маленького списка и игнорировать остальную часть списка из большего списка. –

+0

Вопрос не указывает длину списка, а на примере, который мы предоставили обеим спискам, имеют одинаковую длину. –

+1

Да, я просто сказал, что этот случай не покрыт, не уверен, что это в требованиях или нет. –

1

Попробуйте что-то вроде этого:

map(lambda x,y:x+y,a,b) 

РЕДАКТИРОВАТЬ:

Эта версия должна работать для списков с разным количеством элементов:

map(lambda x,y:(x or []) + (y or []),a,b) 
+0

Если list1 и list2 имеют разные длины, оставшаяся часть от него будет сливаться только до длины самого маленького списка и игнорировать остальную часть списка из более крупного списка. Хотя не уверен, что это часть требования –

+0

Я не вижу такого требования в вопросе, но, да, в этом случае это не сработает. – Vader

+0

@AnandSKumar См. Обновленный ответ для кода, который работает со списками разной длины. – Vader

1
a = [['a','b','c'], [1,2,3]] 
b = [['d','e','f'], [4,5,6]]   
S=[i+j for i,j in zip(a,b)] 
+1

Этот ответ уже приведен выше. Давайте попробуем избежать дублирующих ответов. –

+2

В то время, когда я писал свой ответ, я не видел других ответов ... –

+0

Хорошо, мы понимаем. –

Смежные вопросы