[Python-Dev] Re: PEP 326 now online

Jeff Epler jepler at unpythonic.net
Tue Jan 27 08:32:43 EST 2004


On Mon, Jan 26, 2004 at 04:47:43PM -0800, Josiah Carlson wrote:
> This results in the simplification of the (0, None) examples into one,
> but introduces an index variable and sequence lookups for the general
> case:
> 
> def findmin_General(seq):
>     if not len(seq):
>         raise TypeError("Sequence is empty")
>     cur = seq[0]
>     for i in xrange(1, len(seq)):
>         cur = min(seq[i], cur)
>     return cur
> 
> def findmin_Max(seq):
>     if not len(seq):
>         raise TypeError("Sequence is empty")
>     cur = Max
>     for obj in seq:
>         cur = min(obj, cur)
>     return cur
> 
> Now they both have the same number of lines, but I find the second one
> a bit clearer due its lack of sequence indexing.

I'd avoid the sequence indexing by writing the following:
    def findmin_Iter(seq):
        seq = iter(seq)
        cur = seq.next()
        for i in seq:
            cur = min(i, cur)
        return cur
This code will raise StopIteration, not TypeError, if the sequence is
empty.

Jeff



More information about the Python-Dev mailing list