Один из сообщений pycon2011 поделился этим any()
функциональным приемом; объяснение было в том, что цикл находится в C.
Может ли кто-нибудь объяснить больше об этом? В чем заключается хитрость и есть ли другие варианты использования?
>>> import itertools, hashlib, time
>>> _md5 = hashlib.md5()
>>> def run():
... for i in itertools.repeat('foo', 10000000):
... _md5.update(i)
...
>>> a = time.time(); run(); time.time() -a
3.9815599918365479
>>> _md5 = hashlib.md5()
>>> def run():
... any(itertools.imap(_md5.update, itertools.repeat('foo', 10000000)))
...
>>> a = time.time(); run(); time.time() -a
2.1475138664245605
>>>