2012-07-26 5 views
15

J'ai deux listes:valeurs Soustraire dans une liste de valeurs correspondantes dans une autre liste - Python

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

Comment puis-je soustrais chaque valeur dans une liste de la valeur correspondante dans l'autre liste et créer une telle liste cela:

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

Merci.

+5

S'il s'agit d'une pièce unique, vous aimeriez voir ce que @ sven-marnach a publié. Si vous faites plus de choses avec eux, vous voulez probablement une classe de vecteur réelle par opposition aux listes. Numpy est populaire. – Julian

Répondre

39

La façon la plus simple est d'utiliser une compréhension de la liste

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

ou map():

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

Je semble manquer les questions que je connais réellement les réponses à :), mais oui, listcomp et carte avec operator.sub. J'irais pour la carte ou numpy, mais ouais ... +1 –

+0

A travaillé parfaitement, merci. Se penchera sur «carte», n'ont pas encore rencontré cela. Mais encore une fois, merci. – manengstudent

+2

+1 'map' sera très rapide si la vitesse est importante – jamylak

8

Puisque vous semblez être un étudiant d'ingénierie, vous aurez probablement envie de se familiariser avec numpy. Si vous l'avez installé, vous pouvez le faire

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

Merci Andrew, je vais en effet commencer à le regarder, j'ai le module installé. Merci pour votre conseil. – manengstudent

Questions connexes