[Python-ideas] Integrate some itertools into the Python syntax
Sven R. Kunze
srkunze at mail.de
Wed Mar 23 19:42:50 EDT 2016
On 23.03.2016 23:18, Michael Selik wrote:
>
>
> On Wed, Mar 23, 2016, 5:55 PM Sven R. Kunze <srkunze at mail.de
> <mailto:srkunze at mail.de>> wrote:
>
>
>
> On 23.03.2016 22:44, Michael Selik wrote:
>>
>>
>> On Wed, Mar 23, 2016, 5:27 PM João Bernardo <jbvsmo at gmail.com
>> <mailto:jbvsmo at gmail.com>> wrote:
>>
>> On Mon, Mar 21, 2016 at 8:06 PM, Michel Desmoulin
>> <desmoulinmichel at gmail.com
>> <mailto:desmoulinmichel at gmail.com>> wrote:
>>
>> Itertools is great, and some functions in it are more
>> used than others:
>>
>> - islice;
>> - chain;
>> - dropwhile, takewhile;
>>
>>
>> I like how dropwhile and takewhile could be easily integrated
>> with list comprehensions / generator expressions:
>>
>> [x for x in range(10) while x < 5] # takewhile
>> [x for x in range(10) not while x < 5] # dropwhile
>> [x for x in range(10) from x >= 5] # forward thinking
>> dropwhile
>>
>> I believe this is almost plain english without creating new
>> keywords.
>>
>>
>> They read well, except for the square brackets which to me imply
>> consuming the entire iterator. Itertools takewhile will early
>> exit, possibly leaving some values on the iterator. If these do
>> consume the entire iterator, what's the difference with the
>> ``if`` clause in a comprehension?
>
> But isn't that their purpose? Not consuming. I think that would be
> easy to learn. +1 on this proposal.
>
> This could also prove useful to avoid for-else. :-)
>
>
> After the execution of the list comprehension using "while" if the
> condition triggered halfway, would there be anything left in the
> original iterator? If it was a generator expression, we'd say "Yes"
> immediately. As a list comprehension, I'm not sure.
Let's define it this way. Feeling better? ;-)
Best,
Sven
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20160324/98ad4bf0/attachment-0001.html>
More information about the Python-ideas
mailing list