On Oct 15, 9:18 pm, Mensanator <mensana...@aol.com> wrote: > All I wanted to do is split a binary number into two lists, > a list of blocks of consecutive ones and another list of > blocks of consecutive zeroes. > > But no, you can't do that. > > >>> c = '0010000110' > >>> c.split('0') > > ['', '', '1', '', '', '', '11', ''] > > Ok, the consecutive delimiters appear as empty strings for > reasons unknown (except for the first one). Except when they > start or end the string in which case the first one is included. > > Maybe there's a reason for this inconsistent behaviour but you > won't find it in the documentation. > > And the re module doesn't help. > > >>> f = ' 1 2 3 4 ' > >>> re.split(' ',f) > > ['', '', '1', '2', '', '3', '', '', '4', '', '', '', ''] > > OTOH, if my digits were seperated by whitespace, I could use > str.split(), which behaves differently (but not re.split() > because it requires a string argument). > > >>> ' 1 11 111 11 '.split() > > ['1', '11', '111', '11'] > > That means I can use re to solve my problem after all. > > >>> c = '0010000110' > >>> re.sub('0',' ',c).split() > ['1', '11'] > >>> re.sub('1',' ',c).split() > > ['00', '0000', '0'] > > Would it have been that difficult to show in the documentation > how to do this?
PythonWin 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)] on win32. Portions Copyright 1994-2008 Mark Hammond - see 'Help/About PythonWin' for further copyright information. >>> list('001010111100101') ['0', '0', '1', '0', '1', '0', '1', '1', '1', '1', '0', '0', '1', '0', '1'] >>> TC -- http://mail.python.org/mailman/listinfo/python-list