FW: fast sub list operations
Dale Strickland-Clark
dale at riverhall.NOTHANKS.co.uk
Tue Oct 16 11:43:54 EDT 2001
More information about the Python-list mailing list
Tue Oct 16 11:43:54 EDT 2001
- Previous message (by thread): FW: fast sub list operations
- Next message (by thread): Python COM for Microsoft Project (thanks)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
"Alves, Carlos Alberto - Coelce" <calves at coelce.com.br> wrote: >-----Original Message----- >From: Robin Becker [mailto:robin at jessikat.fsnet.co.uk] >Sent: Tuesday, October 16, 2001 8:34 AM >To: python-list at python.org >Subject: fast sub list operations > > >I constantly miss some nice way to subset lists. As an example suppose I >have a list of x y coordinates eg > > [x0,y0,x1,y1,.....] > >and wish to perform the operation x->x+v, y->y+w for the co-ordinates in >the list I don't seem to be able to do this fast using map. Even if I >had a way to slice the list nicely into > >X=[x0,x1,.....x(n-1)] & Y=[y0,y1,.....,y(n-1)] > >so that I can do map(operator.add,X,n*[v]) to perform the arithmetic >quickly I don't seem to have an interlace to get back to the original >list format. > >How can these kinds of operations be performed quickly in current python >and what if any new features would python require to do them best? >-- >Robin Becker A simple class should help manipulate these lists: class pairs: def __init__(self, list): self.list = list def __getitem__(self, index): if index * 2 >= len(self.list): raise IndexError return self.list[index * 2: index * 2 + 2] l = pairs(range(20)) print 'Pairs', [[x, y] for x,y in l] print 'Odds', [y for x,y in l] print 'Evens', [x for x,y in l] print 'Doubled evens', [x*2 for x,y in l] -- Dale Strickland-Clark Riverhall Systems Ltd
- Previous message (by thread): FW: fast sub list operations
- Next message (by thread): Python COM for Microsoft Project (thanks)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list