On 12/23/2014 1:55 PM, Seb wrote:
def n_grams(a, n):
... z = (islice(a, i, None) for i in range(n))
... return zip(*z)
I'm impressed at how succinctly this islice helps to build a list of
tuples with indices for all the required windows. However, I'm not
quite following what goes on in the first line of the function.
Particulary, what do the parentheses do there?
The parenthesized expression is a generator expression. The ()s are
part of the syntax and may only be omitted when the expression is the
argument of a function call, as in
>>> list((i for i in range(0, 7, 2)))
[0, 2, 4, 6]
>>> list(i for i in range(0, 7, 2))
[0, 2, 4, 6]
--
Terry Jan Reedy
--
https://mail.python.org/mailman/listinfo/python-list