vsoler wrote:
On Aug 31, 6:30 pm, Tim Chase <[email protected]> wrote:After simplifying my problem, I can say that I want to get the sum of the product of two culumns: Say m= [[ 'a', 1], [ 'b', 2],[ 'a', 3]]assuming you meant ['c', 3] here... ^> r={'a':4, 'b':5, 'c':6}What I need is the calculation 1*4 + 2*5 + 3*4 = 4 + 10 + 12 = 26and you mean "3*6" here instead of "3*4", which is 18 instead of 12, making the whole sum 4+10+18=32 Then it sounds like you could do something like result = sum(v * r[k] for k,v in m) where "m" is any arbitrary iterable of tuples. If the keys (the letters) aren't guaranteed to be in "r", then you can use defaults (in this case "0", but could just as likely be "1" depending on your intent): result = sum(v * r.get(k,0) for k,v in m) If the conditions above don't hold, you'll have to introduce me to your new math. ;-)
There is no mistake in my original post, so I really meant [ 'a', 3]
Ah...that makes more sense of the data. My answer still holds then. Use the r[k] version instead of the r.get(...) version, and it will throw an exception if the rate doesn't exist in your mapping. (a KeyError if you want to catch it)
-tkc -- http://mail.python.org/mailman/listinfo/python-list
