你如何从 Python 中的列表 b 中减去列表 a?
How do you subtract list a from list b in Python?
所以我有 2 个列表,比如列表 a
和列表 b
其中
a = [9, 8, 7, 6]
b = [1, 2, 3, 4]
如何从 a
中减去 b
的内容?
您可以 zip 这两个列表并减去子元素以创建一个新列表:
zip(b,a) -> [(1, 9), (2, 8), (3, 7), (4, 6)]
a = [9, 8, 7, 6]
b = [1, 2, 3, 4]
print([y-x for x,y in zip(b,a)])
[8, 6, 4, 2]
如果要更改 a
本身,请使用 enumerate 减去公共索引处的元素:
for ind,ele in enumerate(a):
a[ind] -= b[ind]
print(a)
[8, 6, 4, 2]
或者使用 numpy:
将 numpy 导入为 np
a = np.array([9, 8, 7, 6])
b = np.array([1, 2, 3, 4])
print(a - b)
[8 6 4 2]
您可以使用 map 函数,它的功能是支持多个可迭代对象(以下假设 Python2):
>>> a = [9, 8, 7, 6]
>>> b = [1, 2, 3, 4]
>>> map(lambda x,y: x-y, a, b)
[8, 6, 4, 2]
map
将第一个参数(必须是函数)应用于以下参数的所有元素。例如:
>>> from math import sqrt
>>> map(sqrt, [1,2,9])
[1.0, 1.4142135623730951, 3.0]
如果使用两个以上的参数,第一个参数中的函数必须采用更多参数,因为它是用每个列表中的元素调用的:
>>> from math import pow
>>> map(pow, [2,3,4], [2,3,4])
[4.0, 27.0, 256.0]
结果是 2^2、3^3 和 4^4。
我例子中的 lambda
只是定义减法函数的一种较短的方式,下面的代码将做同样的事情:
def sub(x,y):
return x-y
map(sub, a, b)
a=[1,2,3,4,5]
b=[9,8,7,6,4]
t=0
h=[]
lenA=len(a)
while lenA != t:
x=a[t]-b[t]
t=t+1
h.append(x)
所以我有 2 个列表,比如列表 a
和列表 b
其中
a = [9, 8, 7, 6]
b = [1, 2, 3, 4]
如何从 a
中减去 b
的内容?
您可以 zip 这两个列表并减去子元素以创建一个新列表:
zip(b,a) -> [(1, 9), (2, 8), (3, 7), (4, 6)]
a = [9, 8, 7, 6]
b = [1, 2, 3, 4]
print([y-x for x,y in zip(b,a)])
[8, 6, 4, 2]
如果要更改 a
本身,请使用 enumerate 减去公共索引处的元素:
for ind,ele in enumerate(a):
a[ind] -= b[ind]
print(a)
[8, 6, 4, 2]
或者使用 numpy:
将 numpy 导入为 np
a = np.array([9, 8, 7, 6])
b = np.array([1, 2, 3, 4])
print(a - b)
[8 6 4 2]
您可以使用 map 函数,它的功能是支持多个可迭代对象(以下假设 Python2):
>>> a = [9, 8, 7, 6]
>>> b = [1, 2, 3, 4]
>>> map(lambda x,y: x-y, a, b)
[8, 6, 4, 2]
map
将第一个参数(必须是函数)应用于以下参数的所有元素。例如:
>>> from math import sqrt
>>> map(sqrt, [1,2,9])
[1.0, 1.4142135623730951, 3.0]
如果使用两个以上的参数,第一个参数中的函数必须采用更多参数,因为它是用每个列表中的元素调用的:
>>> from math import pow
>>> map(pow, [2,3,4], [2,3,4])
[4.0, 27.0, 256.0]
结果是 2^2、3^3 和 4^4。
我例子中的 lambda
只是定义减法函数的一种较短的方式,下面的代码将做同样的事情:
def sub(x,y):
return x-y
map(sub, a, b)
a=[1,2,3,4,5]
b=[9,8,7,6,4]
t=0
h=[]
lenA=len(a)
while lenA != t:
x=a[t]-b[t]
t=t+1
h.append(x)