我有两个列表,想要从相反列表中的相应元素中减去每个元素。当我写这段代码时:
list(map(sub, irrad_fore, irrad_exp))
我收到以下错误:
TypeError: unsupported operand type(s) for -: 'str' and 'str'
为什么会这样?
答案 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]