John Henry wrote: > Paul McGuire wrote: > > "Paul McGuire" <[EMAIL PROTECTED]> wrote in message > > news:[EMAIL PROTECTED] > > > "John Henry" <[EMAIL PROTECTED]> wrote in message > > > news:[EMAIL PROTECTED] > > snip > > > > Grrrr... that's what I get for not keeping editor and interpreter windows in > > sync. My post was referencing vars I had defined in the interpreter, but > > which the function had no clue of. !!! Here's a working version. > > > > -- Paul > > > > > > def splitUp(src,lens): > > ret = [] > > cur = 0 > > for length in lens: > > if length is not None: > > ret.append( src[cur:cur+length] ) > > cur += length > > else: > > ret.append( src[cur:] ) > > return ret > > > > origlist = list("ABCDEFGHIJ") > > alist, blist, clist, dlist = splitUp( origlist, (1,1,3,None) ) > > print alist, blist, clist, dlist > > > Nice. > > While we are at it, why not: > > class splitUp(object): > def __init__(self,src): > self._src=list(src) > def slice(self, lens): > ret = [] > cur = 0 > for length in lens: > if length is not None: > ret.append( self._src[cur:cur+length] ) > cur += length > else: > ret.append( self._src[cur:] ) > return ret > > alist, blist, clist, dlist = splitUp("ABCDEFGHIJ").slice((1,1,3,None)) > print alist, blist, clist, dlist > > Now, that's readable!
Further, if splitUp is a sub-class of string, then I can do: alist, blist, clist, dlist = "ABCDEFGHIJ".slice((1,1,3,None)) Now, can I override the slice operator? -- http://mail.python.org/mailman/listinfo/python-list