我有两个大小相同的列表,我想制作第三个列表,其中包含前两个列表的差异:
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方法?
我有两个大小相同的列表,我想制作第三个列表,其中包含前两个列表的差异:
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)]
from operator import sub
a=[1,2,3,4]
b=[2,1,3,2]
print map(sub, a, b)
# [-1, 1, 0, 2]
如何根据python中的函数合并两个列表?
您正在寻找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)]