elementwise multiplication of 2 lists of numbers

Arnaud Delobelle arnodel at gmail.com
Mon Sep 20 18:17:40 CEST 2010


On Sep 20, 3:02 pm, harryos <oswald.ha... at gmail.com> wrote:
> hi
> I have 2 lists of numbers,say
> x=[2,4,3,1]
> y=[5,9,10,6]
> I need to create another list containing
> z=[2*5, 4*9, 3*10, 1*6]  ie =[10,36,30,6]
>
> I did not want to use numpy or any Array types.I tried to implement
> this in python .I tried the following
>
> z=[]
> for a,b in zip(x,y):
>         z.append(a*b)
> This gives me the correct result.Still,Is this the correct way?
> Or can this be done in a better way?
>
> Any pointers most welcome,
> harry

In addition to what others have said, you can use the map builtin as
follows:
In Python 2.x:

>>> map(int.__mul__, [2, 4, 3, 1], [5, 9, 10, 6])
[10, 36, 30, 6]

If you don't know the list only contain ints use operator.mul.

In Python 3.x you need to wrap it in list() as map returns an
iterator.

HTH

--
Arnaud



More information about the Python-list mailing list