Iterators membership testing

Mark Lawrence breamoreboy at
Sun Aug 9 15:45:20 CEST 2015

On 09/08/2015 14:11, Chris Angelico wrote:
> On Sun, Aug 9, 2015 at 11:09 PM, Tim Chase <tim at> wrote:
>> On 2015-08-09 19:24, Chris Angelico wrote:
>>> That's exactly right. The only way for the interpreter to handle
>>> 'in' on an iterator is something like this:
>>> def contains(iter, obj):
>>>      for val in iter:
>>>          if val == obj: return True
>>>      return False
>> Which can nicely be written as
>>    any(i == obj for obj in iter)
> Indeed it can, although I'm not sure whether it'd just have been
> another step in the explanation :) Whether or not that makes perfect
> sense depends on the reader.
> ChrisA

This one probably won't make make sense to most readers.

any("Australian batsmen scored any() runs recently?")

See also 

My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.

Mark Lawrence

More information about the Python-list mailing list