On Sun, Oct 21, 2012 at 12:33 PM, Vincent Davis <vinc...@vincentdavis.net> wrote: > I am looking for a good way to get every pair from a string. For example, > input: > x = 'apple' > output > 'ap' > 'pp' > 'pl' > 'le' > > I am not seeing a obvious way to do this without multiple for loops, but > maybe there is not :-)
Use the "pairwaise" recipe from the itertools docs: def pairwise(iterable): "s -> (s0,s1), (s1,s2), (s2, s3), ..." a, b = tee(iterable) next(b, None) return izip(a, b) > In the end I am going to what to get triples, quads....... also. Generalizing: def nwise(iterable, n=2): iters = tee(iterable, n) for i, it in enumerate(iters): for _ in range(i): next(it, None) return izip(*iters) -- http://mail.python.org/mailman/listinfo/python-list