2016-11-15 44 views
-5

我有兩個列表,並想從相對列表中的相應元素中減去每個元素。當我寫這篇文章的代碼:爲什麼不通過這段代碼讓我減去python中的兩個列表?

list(map(sub, irrad_fore, irrad_exp))

我得到以下錯誤:

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

這是爲什麼?

+2

你不能從一個字符串中減去一個字符串。將列表中的元素轉換爲整數,並且可以減去它們。 –

回答

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] 
相關問題