Splitting a list
Elaine Jackson
elainejackson7355 at home.com
Tue Aug 31 14:10:13 EDT 2004
def indices(x,y):
if y in x:
i = x.index(y)
j = i+1
return [i]+[z+j for z in indices(x[j:],y)]
return []
def listSplit(x,y):
z = [-1] + indices(x,y) + [len(x)]
return [x[z[i]+1:z[i+1]] for i in range(len(z)-1)]
"Ian Sparks" <Ian.Sparks at etrials.com> wrote in message
news:mailman.2673.1093960462.5135.python-list at python.org...
string.split() is very useful, but what if I want to split a list of integers on
some element value?
e.g. :
>> l = [1,2,3,-1,4,5,-1,8,9]
>> l.split(-1)
>> [[1,2,3],[4,5],[8,9]]
Here's my hideous first pass :
>> [[int(z) for z in x.split(',') if z] for x in ','.join([str(a) for a in
l]).split('-1')]
>> [[1, 2, 3], [4, 5], [8, 9]]
When I see code like that I just know I've missed something obvious....
More information about the Python-list
mailing list