如何在数学上减去python中的两个列表?

Gar*_*ale 3 python list subtraction

我知道python中不支持减去列表,但是有一些方法可以省略两个列表之间的公共元素.但我想要做的是用一个列表中的相应元素分别减去一个列表中的每个元素,并将结果作为输出列表返回.我怎样才能做到这一点?

     A = [3, 4, 6, 7]
     B = [1, 3, 6, 3]
     print A - B  #Should print [2, 1, 0, 4]
Run Code Online (Sandbox Code Playgroud)

Tha*_*vas 17

使用带有地图模块的运算符

>>> A = [3, 4, 6, 7]
>>> B = [1, 3, 6, 3]
>>> map(operator.sub, A, B)
[2, 1, 0, 4]
Run Code Online (Sandbox Code Playgroud)

正如下面提到的@SethMMorton,在Python 3中,你需要这个

>>> A = [3, 4, 6, 7]
>>> B = [1, 3, 6, 3]
>>> list(map(operator.sub, A, B))
[2, 1, 0, 4]
Run Code Online (Sandbox Code Playgroud)

因为,Python中的map会返回一个迭代器.

  • 请注意,在 python 3 上,这不会返回“列表”,而是返回“映射对象”。您需要“list(map(operator.sub, A, B))”才能获得相同的结果。 (2认同)

iCo*_*dez 10

您可以使用zip列表理解:

>>> A = [3, 4, 6, 7]
>>> B = [1, 3, 6, 3]
>>> zip(A, B) # Just to demonstrate
[(3, 1), (4, 3), (6, 6), (7, 3)]
>>> [x - y for x, y in zip(A, B)]
[2, 1, 0, 4]
>>>
Run Code Online (Sandbox Code Playgroud)