-2

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な方法はありますか?

4

4 に答える 4

7

リストの理解。

[x - y for (x, y) in zip(a, b)]
于 2013-07-01T16:11:14.440 に答える
4

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イテレータを返すため、メモリ効率の高いソリューションに使用します。

于 2013-07-01T16:10:56.830 に答える
1

zipリスト内包表記で使用できます:

>> [x-y for (x, y) in zip(a, b)]
于 2013-07-01T16:11:28.723 に答える