String Splitter Brain Teaser

Michael Spencer mahs at telcopartners.com
Sun Mar 27 20:04:54 EST 2005


James Stroud wrote:
> Hello,
> 
> I have strings represented as a combination of an alphabet (AGCT) and a an 
> operator "/", that signifies degeneracy. I want to split these strings into 
> lists of lists, where the degeneracies are members of the same list and 
> non-degenerates are members of single item lists. An example will clarify 
> this:
> 
> "ATT/GATA/G"
> 
> gets split to
> 
> [['A'], ['T'], ['T', 'G'], ['A'], ['T'], ['A', 'G']]
> 

  >>> def group(src):
  ...     stack = []
  ...     srciter = iter(src)
  ...     for i in srciter:
  ...         if i == "/":
  ...             stack[-1].append(srciter.next())
  ...         else:
  ...             stack.append([i])
  ...     return stack
  ...
  >>> group("ATT/GATA/G")
  [['A'], ['T'], ['T', 'G'], ['A'], ['T'], ['A', 'G']]
  >>>

Michael




More information about the Python-list mailing list