2016-11-15 2 views
-5

두 목록이 있고 반대 목록의 해당 요소에서 각 요소를 뺍니다.왜이 코드를 사용하면 파이썬에서 두 개의 목록을 뺄 수 있습니까?

list(map(sub, irrad_fore, irrad_exp))

나는 다음과 같은 오류 얻을 : 왜이 ​​

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

입니다 나는이 코드를 작성하면?

+2

대신 map()의, 더 좋은 방법으로 두 목록에 지능형리스트를 zip()를 작성하는 것입니다. 목록의 요소를 정수로 변환하면 그 값을 뺄 수 있습니다. –

답변

2

오류가 명확하게 표시되어 있으므로 두 개를 직접 뺄 수 없습니다. str. 이를 달성하려면 먼저 str 개체를 int으로 변환해야합니다. 당신은 문자열에서 문자열을 뺄 수 없습니다

>>> 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]