On Aug 31, 6:30 pm, Tim Chase <python.l...@tim.thechases.com> 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 = 26 > > and 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. ;-) > > -tkc
Hello Tim, There is no mistake in my original post, so I really meant [ 'a', 3] Imagine that m contains time sheets of suppliers supplier 'a' has worked for you 1 hour supplier 'b' has worked for you 2 hour supplier 'a' has worked for you 3 hour Now supplier 'a' charges $4 per hour supplier 'b' charges $5 per hour supplier 'c' charges $6 per hour I want to know how much I will be charged this month by my pannel of suppliers. 1*4 + 2*5 + 3*4 = 4 + 10 + 12 = 26 This is what I am after. I expect all my suppliers to have handed me in advance the per hour fee. If at least one hasn't, I must know that the result is undefined. Hope this helps Vicente Soler -- http://mail.python.org/mailman/listinfo/python-list