2012-07-26 27 views
15

tengo dos listas:Restar los valores en una lista de los valores correspondientes de otra lista - Python

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

¿Cómo restar cada valor en una lista desde el valor correspondiente en la otra lista y crear una lista de tales eso:

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

Gracias.

+5

Si se trata de una sola vez, lo que querría @ Sven-Marnach publicada. Si estás haciendo más cosas con ellos, es probable que desees una verdadera clase vectorial en lugar de listas. Numpy es popular. – Julian

Respuesta

39

La forma más sencilla es utilizar una lista por comprensión

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

o map():

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

Parece que me pierdo las preguntas de las que realmente sé respuestas :), pero sí, listcomp y mapa con operator.sub. Me gustaría ir al mapa o numpy, pero sí ... +1 –

+0

Funcionó perfectamente, gracias. Buscará en 'mapa', aún no se ha encontrado con eso. Pero de nuevo, gracias. – manengstudent

+2

+1 'map' será muy rápido si la velocidad es importante – jamylak

8

Ya que parece ser un estudiante de ingeniería, es probable que desee familiarizarse con numpy. Si lo tienes instalado, puede hacerlo

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

Gracias Andrew, de hecho voy a empezar a buscarlo, tengo el módulo instalado. Gracias por tu consejo. – manengstudent

Cuestiones relacionadas