[Baypiggies] Discussion for newbies/beginner night talks

Dennis Reinhardt DennisR at dair.com
Sat Feb 10 00:40:00 CET 2007

>2) If you need to do a lot of string appends, use lists and join().

This is an optimization and as such may not be the first approach to 
consider.  All of the code samples I showed used string appends such as

        str  = ""
         str += "string 1"
         str +  "string 2"
Why?  ... because it is more concise and renders the code easier to 
read.  I think in 4 or so years, I have had to convert an append string 
such as this into appending list elements followed by a join once, maybe 

Your experience may differ but there is a clarity vs. efficiency tradeoff 
here and my experience is that the efficiency is rarely needed.

I realize Chad said "a lot".  That is a key qualifier.  When doing "a lot", 
efficiency matters.

>3) Understand and use iterators in loops.

I am using 2.3 and get by without iterators.  I would re-purpose this 

Coming from other languages, the natural tendency is to iterate over a 
structure by index:

         for i in range(0,99):
            element = array[i]

The range operator is considered evil in that it builds a list at 
runtime.  So, taken literally, the advice could be construed to use an 
interator instead.

My advice is to not do either of the above.  Instead, iterate over the 
structure and let the array element be the loop iteration value.  Instead 
of iterators, do:

         for element in array:

and dispense with indicies to the extent that you can.  There will be cases 
where you need an index (e.g. updating element) but the first approach 
ought to be iterating over the structure.

>5) Understand and use the decorate/sort/undecorate (DSU) idiom.

I don't even know what that is.  When is the tutorial...?

Regards, Dennis

| Dennis    | DennisR at dair.com    |
| Reinhardt | http://www.dair.com |

More information about the Baypiggies mailing list