String Splitter Brain Teaser
Brian van den Broek
bvande at po-box.mcgill.ca
Sun Mar 27 20:24:07 EST 2005
Michael Spencer said unto the world upon 2005-03-27 20:04:
> 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
>
Much nicer than mine. =| :-)
^
|
---- (hats off)
I've got to get iterators into my working vocabulary!
Best,
Brian vdB
More information about the Python-list
mailing list