James Stroud wrote: > 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,
[...] > > > > 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 > > > > Unfortunately this does not address the complete specification: > > >>> a = [ 'tag1', '+', 'tag2', '-', 'tag3', '+', 'tag4' ] > >>> > >>> import itertools > >>> > >>> b = list(itertools.islice(a,0,len(a),2)) > >>> c = list(itertools.islice(a,1,len(a),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 > [] > > Need to check for the absence of that first op. > > James Yes, should have stuck to the spec. Gerard -- http://mail.python.org/mailman/listinfo/python-list