On Mar 13, 2:16 am, Steven D'Aprano <[EMAIL PROTECTED]> wrote: > I'd be interested in hearing people's stories of Eureka moments in Python, > moments where you suddenly realise that some task which seemed like it > would be hard work was easy with Python. >
## I have this problem where, given a list of non-zero ## positive integers (sv), I need to calculate threee constants ## x, y, z where ## ## x is 2 raised to the power of the sum of the elements in sv, ## ## y is 3 raised to the power of the count of the elements in sv, ## ## and ## ## z is 3**a*2**A + 3**b*2**B + ... + 3**m*2**M + 3**n*2**N ## ## where a,b,...m,n are 0,1,...len(sv)-2,len(sv)-1 and ## N is the sum of all elements of sv except the last one, ## M is the sum of all elements of sv except the last two, ## ... ## B is the sum of all elements of sv except the last len(sv)-1, ## A is the sum of all elements of sv except the last len(sv). ## ## This turned out to be one of those things that's ## easier to code than to describe. ## ## And if you saw my original Excel spreadsheet where I ## developed it, you'd say Eureka too. def calc_xyz(sv): x = 2**sum(sv) y = 3**len(sv) z = 0 for i in xrange(len(sv)): z += 3**i * 2**sum(sv[:-(i+1)]) return (x,y,z) sv = [1,2,3,4] print calc_xyz(sv) ## (1024, 81, 133) -- http://mail.python.org/mailman/listinfo/python-list