2 つの同じサイズのリストがあり、前の 2 つのそれぞれの違いを含む 3 つ目のリストを作成したいと考えています。
a=[1,2,3,4]
b=[2,1,3,2]
計算したいc=[a[0]-b[0],a[1]-b[1],a[2]-b[2],a[3]-b[3],]
のですが、そのためのpythonicな方法はありますか?
2 つの同じサイズのリストがあり、前の 2 つのそれぞれの違いを含む 3 つ目のリストを作成したいと考えています。
a=[1,2,3,4]
b=[2,1,3,2]
計算したいc=[a[0]-b[0],a[1]-b[1],a[2]-b[2],a[3]-b[3],]
のですが、そのためのpythonicな方法はありますか?
リストの理解。
[x - y for (x, y) in zip(a, b)]
Pythonの関数に基づいて2つのリストをマージするには?
あなたが探してzip
いるリスト内包表記:
>>> a=[1,2,3,4]
>>> b=[2,1,3,2]
>>> def func(x,y):
... return x-y
>>> c = [func(x,y) for x,y in zip(a,b)]
>>> c
[-1, 1, 0, 2]
ヘルプzip
:
zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]
タプルのリストを返します。各タプルには i 番目の要素が含まれます 各引数シーケンスから。返されるリストは切り捨てられます 最短の引数シーケンスの長さまで。
itertools.izip
イテレータを返すため、メモリ効率の高いソリューションに使用します。
zip
リスト内包表記で使用できます:
>> [x-y for (x, y) in zip(a, b)]