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):
        results[1] += 1
    elif (thisflag == 0):
        results[2] += 1
    return(results)

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

Reply via email to