Suggestion: str.itersplit()

attn.steven.kuo at attn.steven.kuo at
Sat Apr 21 23:54:08 CEST 2007

On Apr 21, 5:58 am, Dustan <DustanGro... at> wrote:
> >From my searches here, there is no equivalent to java's
> StringTokenizer in python, which seems like a real shame to me.
> However, str.split() works just as well, except for the fact that it
> creates it all at one go. I suggest an itersplit be introduced for
> lazy evaluation, if you don't want to take up recourses, and it could
> be used just like java's StringTokenizer.
> Comments?

If your delimiter is a non-empty string, you
can use an iterator like:

def it(S, sub):
    start = 0
    sublen = len(sub)
    while True:
        idx = S.find(sub,start)
        if idx == -1:
            yield S[start:]
            raise StopIteration
            yield S[start:idx]
            start = idx + sublen

target_string = 'abcabcabc'
for subs in it(target_string,'b'):
    print subs

For something more complex,
you may be able to use

Hope this helps,

More information about the Python-list mailing list