On 10/21/2012 12:06 PM, Ian Kelly wrote:
On Sun, Oct 21, 2012 at 12:58 PM, Vincent Davis
<vinc...@vincentdavis.net> wrote:
x = 'apple'
for f in range(len(x)-1):
print(x[f:f+2])
@Ian,
Thanks for that I was just looking in to that. I wonder which is faster I
have a large set of strings to process. I'll try some timings if I get a
chance later today.
The solution you came up with is probably faster, but less general --
it will only work on sliceable sequences like strings, not arbitrary
iterables.
So the simple loop is the right answer for sliceable sequences like
strings, but not if your code needs to deal with arbitrary iterables
such as those that the standard library authors are expected to handle.
So, as OP's a self confessed newbie asking about slicing, why provide an
example requiring knowledge of tee, enumerate, next and izip?
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)
It's good that the standard library provides these tools as a
convenience, but when all you need is a derringer, why reach for a howitzer?
Emile
--
http://mail.python.org/mailman/listinfo/python-list