Separating elements from a list according to preceding element

Gerard Flanagan grflanagan at yahoo.co.uk
Sun Mar 5 15:14:53 EST 2006


Gerard Flanagan wrote:
> Rob Cowie wrote:
> > I'm having a bit of trouble with this so any help would be gratefully
> > recieved...
> >
> > After splitting up a url I have a string of the form
> > 'tag1+tag2+tag3-tag4', or '-tag1-tag2' etc. The first tag will only be
> > preceeded by an operator if it is a '-', if it is preceded by nothing,
> > '+' is to be assumed.
> >
> > Using re.split, I can generate a list that looks thus:
> > ['tag1', '+', 'tag2', '+', 'tag3', '-', 'tag4']
> >
> > I wish to derive two lists - each containing either tags to be
> > included, or tags to be excluded. My idea was to take an element,
> > examine what element precedes it and accordingly, insert it into the
> > relevant list. However, I have not been successful.
> >
> > Is there a better way that I have not considered? If this method is
> > suitable, how might I implement it?
> >
> > Thanks all,
> >
> > Rob Cowie
>
> a = [ '+', 'tag1', '+', 'tag2', '-', 'tag3', '+', 'tag4' ]
>
> import itertools
>
> b = list(itertools.islice(a,0,8,2))
> c = list(itertools.islice(a,1,8,2))
>
> result1 = [x[1] for x in itertools.izip(b,c) if x[0] == '+']
> result2 = [x[1] for x in itertools.izip(b,c) if x[0] == '-']
>
> print
> print result1
> print result2
> 
> 
> Gerard

  '8' is the length of 'a'  (len(a))




More information about the Python-list mailing list