Message info
 
To:Barry Drake From:Asokan Pichai Subject:Re: [Tutor] New to this list .... Date:Fri, 30 Mar 2012 21:33:01 +0530
 

On Fri, Mar 30, 2012 at 9:12 PM, Barry Drake <bdrake@crosswire.org> wrote:
> On 30/03/12 16:19, Evert Rol wrote:
>>
>> Not sure. In the sense that you can "optimise" (refactor) it in the same
>> way you could do with C. Eg:
>> results = [0, 0, 0]
>> flags = [0, 1, 2, 3]
>> for flag in flags:
>> results = getflag(flag, results)
>>
>
> That's exactly what I hoped for. I hadn't realised I can initialise a list
> in one go - it seems that lists work a lot like the arrays I was used to in
> c. Thanks to the others who took the time to answer. Just now, Asokan's
> solution is a bit obscure to me - I'll work on that one, but the above is
> lovely and elegant; and easy to understand. Someone asked about the getflag
> function - it is:
>

> def getflag(thisflag, results):
> if (thisflag == 2):
> results[0] += 1
> elif (thisflag == 1):> In c, I would have used switch and case, but I gather there is no direct
> equivalent in Python ... But it works as is.
>
> --
> From Barry Drake - a member of the Ubuntu advertising team.
>
>
> _______________________________________________
> Tutor maillist - Tutor@python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor

and directly index on thisflag
> results[1] += 1
> elif (thisflag == 0):
> results[2] += 1
> return(results)
>
For the specific values it may be simpler to write:

def getflag(thisflag, results):
results[2- thisflag] += 1
return results

Or you may rearrange the meaning of results
and write

results[thisflag] += 1

HTH
Asokan Pichai
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor