为什么这个代码不允许我在python中减去两个列表?

时间:2016-11-15 15:13:46

标签: python list subtraction

我有两个列表,想要从相反列表中的相应元素中减去每个元素。当我写这段代码时:

list(map(sub, irrad_fore, irrad_exp))

我收到以下错误:

TypeError: unsupported operand type(s) for -: 'str' and 'str'

为什么会这样?

1 个答案:

答案 0 :(得分:2)

正如错误明确指出的那样,您不能直接减去两个str 。为实现此目的,您必须先将str个对象转换为int。而不是map(),更好的方法是在两个列表上使用zip()编写列表理解

>>> a = ['1', '4', '7', '9']
>>> b = ['3', '3', '7', '11']
>>> [int(i) - int(j) for i, j in zip(a, b)]
[-2, 1, 0, -2]