2 つのリストがあるとします。
a=[1,2,3,4,5]
b=[5,4,3,2,1]
与えられた2つの線形和になる3番目のものを作成したい:
c[i]==a[i]+b[i]
c==[6,6,6,6,6]
「for」コンストラクターで行うことは可能ですか? お気に入り:
c = [aa+bb for aa in a for bb in b]
(これは明らかに私が望むものではありません)
2 つのリストがあるとします。
a=[1,2,3,4,5]
b=[5,4,3,2,1]
与えられた2つの線形和になる3番目のものを作成したい:
c[i]==a[i]+b[i]
c==[6,6,6,6,6]
「for」コンストラクターで行うことは可能ですか? お気に入り:
c = [aa+bb for aa in a for bb in b]
(これは明らかに私が望むものではありません)
使用zip()
:
>>> a = [1,2,3,4,5]
>>> b = [5,4,3,2,1]
>>> c = [x+y for x,y in zip(a, b)]
>>> c
[6, 6, 6, 6, 6]
また:
>>> c = [a[i] + b[i] for i in range(len(a))]
>>> c
[6, 6, 6, 6, 6]
c = [aa+bb for aa in a for bb in b]
次のようなものです:
for aa in a:
for bb in b:
aa+bb
つまり、から選択1
してから、に追加するときにa
のすべての要素をループし、次にから選択してから、に追加するときにのすべての値をもう一度ループするため、期待どおりの出力が得られませんでした。b
1
2
a
b
2
a=[1,2,3,4,5]
b=[5,4,3,2,1]
[x+y for x,y in zip(a,b)]
[6, 6, 6, 6, 6]
OR
map(lambda x,y:x+y, a, b)
[6, 6, 6, 6, 6]
[ay + be for ay, be in zip(a, b)]
sums = [a[i]+b[i] for i in range(len(a))]
あなたが何をしようとしているのかわかりませんが、numpyであなたが求めたことを簡単に行うことができます。コードにその余分な依存関係を本当に追加したいかどうかはわかりません。