2012-07-26 11 views
15

Mam dwóch list:wartości Odejmowanie w jednym liście od odpowiadającej wartości w innej listy - Python

A = [2, 4, 6, 8, 10] 
B = [1, 3, 5, 7, 9] 

Jak mogę odjąć każdą wartość w jednej listy od odpowiadającej wartości w drugiej listy i utworzyć listę taką to:

C = [1, 1, 1, 1, 1] 

Dzięki.

+5

Jeśli jest to wydarzenie jednorazowe, chcesz, co napisał @ sven-marnach. Jeśli robisz z nimi więcej rzeczy, najprawdopodobniej chcesz mieć klasę wektorową, a nie listy. Numpy jest popularny. – Julian

Odpowiedz

39

Najprostszym sposobem jest użycie wyrażeń listowych

C = [a - b for a, b in zip(A, B)] 

lub map():

from operator import sub 
C = map(sub, A, B) 
+0

Wydaje mi się, że tęsknię za pytaniami, na które rzeczywiście znam odpowiedzi :), ale tak, listcomp i map with operator.sub. Poszedłem na mapę lub numpy, ale tak ... +1 –

+0

Działa doskonale, dziękuję. Zajrzę do "mapy", jeszcze się nie natknąłem. Ale znowu, dziękuję. – manengstudent

+2

+1 'mapa' będzie bardzo szybki, jeśli prędkość jest ważna – jamylak

8

Ponieważ wydaje się być student inżynierii, prawdopodobnie będziesz chciał zapoznać się z numpy. Jeśli go zainstalowałeś, możesz wykonać

>>> import numpy as np 
>>> a = np.array([2,4,6,8]) 
>>> b = np.array([1,3,5,7]) 
>>> c = a-b 
>>> print c 
[1 1 1 1] 
+0

Dzięki Andrew, naprawdę zacznę się w to zaglądać, mam zainstalowany moduł. Dziękuję za radę. – manengstudent

Powiązane problemy