Python: объединение 2 списков одинакового размера - PullRequest
3 голосов
/ 02 июня 2011

Допустим, у меня есть 2 следующих списка:

list1 = [1,1,1,1] list2 = [3,3,3,3]

Я хочу, чтобы результат объединения был:

list3 [4,4,4,4]

Какой лучший способ сделать это?

Ответы [ 2 ]

11 голосов
/ 02 июня 2011

Очень похоже на ответ Игнасио, но для чуть большей краткости:

list3 = [sum(i) for i in zip(list1, list2)]

или

list3 = map(sum, zip(list1, list2))

Я сам предпочитаю версию карты.

Редактировать: Как справедливо отмечает JBernardo, если вы используете Python 2.x, вы должны заменить zip его итератором в itertools.izip для эффективности, но zip по умолчанию использует итераторы в Python 3.

9 голосов
/ 02 июня 2011
list3 = [x + y for (x, y) in itertools.izip(list1, list2)]

или

list3 = map(operator.add, list1, list2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...