list comprehension question

Dwight Hutto dwightdhutto at gmail.com
Tue Oct 16 22:22:29 EDT 2012


On Tue, Oct 16, 2012 at 10:13 PM, Dave Angel <d at davea.name> wrote:
> 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.

I think he might be using the wrong function for a matrix
multiplication, not that it's not workable, but there are other
libraries like numpy that could help out.

I wouldn't use list comprehension for this, unless it might be several
lists that interact.
>
>
>
> --
>
> DaveA
>
> --
> http://mail.python.org/mailman/listinfo/python-list



-- 
Best Regards,
David Hutto
CEO: http://www.hitwebdevelopment.com



More information about the Python-list mailing list