2016-12-24 14 views
-5

私は2つのリストを、定義したn1とn2:2リスト要素を追加して、Pythonで新しいリストを1ショットで作成する方法は?

In [1]: n1=[1,2,3] 

In [2]: n2=[4,5,6] 

In [3]: n1+n2 
Out[3]: [1, 2, 3, 4, 5, 6] 

In [4]: n1+=n2 

In [5]: n1 
Out[5]: [1, 2, 3, 4, 5, 6] 

さて、私は何を期待することは、新しいリストを取得することです: N3 = [5,7,9]各要素の概要のように、 n1およびn2。

私は、このルーチンジョブを実行するためのforループを書いたくありません。 これを行うには、Python演算子またはライブラリがワンショット呼び出しをサポートしていますか?

+3

[こちら]を参照してください。 (http://stackoverflow.com/questions/18713321/element-wise-addition-of-2-lists-in-python)、[ここ](http://stackoverflow.com/questions/8451) 12/concise-vector-in-python)、[ここ](http://stackoverflow.com/questions/14050824/add-sum-of-values-of-two-lists-into-newlist)そしておそらくもっとたくさん。 – TigerhawkT3

答えて

1
[x + y for x, y in zip(n1, n2)] 
[n1[i] + n2[i] for i in range(len(n1))] 
map(int.__add__, n1, n2) 
+0

これは素晴らしいです。 – Troskyvs

0

いいえ、そのためのワンショットコマンドはありません。 2つのリストに要素を追加するのは一般的な操作ではありません。ここでループを避けることはできません。

使用zip()list comprehension:私はこのルーチン仕事をするためのループのために書くことを望まない

from numpy import array 

n3 = array(n1) + array(n2) 
1

[a + b for a, b in zip(n1, n2)] 

はまた、 numpy配列を使用します。これを行うには、Python演算子またはライブラリがワンショット呼び出しをサポートしていますか?

Pythonはネイティブでサポートしていませんが、あなたはライブラリNumPy使用することができます。また

import numpy as np 

n1 = np.array([1, 2, 3]) 
n2 = np.array([4, 5, 6]) 

n3 = n1 + n2 

を、あなたはlist comprehensionzip()を使用することができます。

n3 = [x + y for x, y in zip(n1, n2)] 
関連する問題