2016-11-15 8 views
-5

私は2つのリストを持ち、それぞれの要素を反対のリストの対応する要素から引きます。なぜこのコードでは、私はPythonで2つのリストを引くことができますか?

list(map(sub, irrad_fore, irrad_exp))

私は次のエラーを取得:これはなぜ

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

ですが、私はこのコードを書くときは?

+2

:代わりmap()の、より良い方法では、どちらのリストにzip()リスト内包を書くことになります。あなたのリストの要素を整数に変換し、それらを減算することができます。 –

答えて

2

エラーが明確に表示されるので、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] 
関連する問題