[Tutor] Am I making this harder than it needs to be?

Ron Phillips RPhillips at engineer.co.summit.oh.us
Wed May 25 16:05:55 CEST 2005


Oh, thanks! That didn't exactly do the trick, because I had data like
[(1, 22),(2,11)], but from your code I came up with: 
 
    def getBB(self):
        Es=[]
        Ns=[]
        for i in range(len(self)):
            Es.append((self[i].E))
            Ns.append((self[i].N))
        self.boundingBox=geoBox((min(Es),min(Ns)),(max(Es),max(Ns)))
        return(self.boundingBox)

which works fine, and I think will be pretty fast.
 
Ron

>>> Pujo Aji <ajikoe at gmail.com> 5/25/2005 9:47 AM >>>

try this code:
    L = [(1,11),(2,22)]
    print max(L)
    print min(L)

I don't know if that what you want.

good luck
pujo

On 5/25/05, Ron Phillips <RPhillips at engineer.co.summit.oh.us> wrote:
>  
> short version: I  need a way to get max and min E and N out of
> [(E0,N0),(E1,N1)...(En,Nn)] without reordering the list 
>   
> long version: 
>   
> I would like a list of geographic coordinates (Easting, Northing) to
> maintain a "bounding box"
> [(minEasting,minNorthing),(maxEasting,maxNorthing)]
> attribute. 
>   
> I did it like this: 
>   
> class geoCoordinateList(UserList):
>     def __init__(self):
>         UserList.__init__(self)
>         self.boundingBox = geoBox(minEN=geoCoordinate(),
>                                   maxEN=geoCoordinate())
>  
>     def append(self, geoCoord):
>         self.extend([geoCoord])
>         self.boundingBox.challenge(geoCoord)#bumps the max and min
if
> necessary
>  
> but I'd have to override almost all the UserList methods, unless
there's a
> way to call boundingBox.challenge() on any change to the list. 
>   
> The other way I thought would be to make a getBB method, like: 
>   
>     def getBB(self):
>         new=geoBox()
>         for gC in self:
>             new.challenge(gC)#bumps the corners if needed 
>         self.boundingBox=new
>         return(new)
>  
> but that seems like a lot of churning if nothing has changed. 
>   
> I suspect there's some slick, readable way to do this, and when I see
it
> I'll say "Doh!" 
>   
>   
>   
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
> 
> 
>

______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
______________________________________________________________________

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20050525/6d0bc180/attachment.htm


More information about the Tutor mailing list