list comprehension question

Dave Angel d at davea.name
Tue Oct 16 22:13:50 EDT 2012


On 10/16/2012 09:54 PM, Kevin Anthony wrote:
> I've been teaching myself list comprehension, and i've run across something
> i'm not able to convert.
>
> here's the original code for matrix multiplcation
>
> retmatrix = Matrix(self.__row,other.__col)
> for m in range(0,retmatrix.__row):
>     for n in range(0,retmatrix.__col):
>         product = 0
>         for p in range(1,self.__col+1):
>             product += (self.__matrix[m][p] * other.__matrix[p][n])
>         retmatrix.__matrix[m][n] = product
>
> Here is what i have so far:
> retmatrix.__matrix = [[ product = product + (self.__matrix[m][p]*
> other.__matrix[p][n])
>                  if product else self.__matrix[m][p]* other.__matrix[p][n])
>                  for p in range(0,self.col)
>                  for n in range(0,self.col)]
>                  for m in range(0,self.__row)]
>
> But i know that isn't correct, can someone nudge my in the right direction?
>
>

The biggest thing to learn about list comprehensions is when not to use
them.  I can't imagine how your latter version (even if correct) is
clearer than the first.



-- 

DaveA




More information about the Python-list mailing list