this seems nice.

It just seems that the obvious way to do it would be:

def tap(iter_, func):
   for item in iter_:
       func(item)
       yield item



I think it can be nice, but more as cookbook material than an actual
itertools function.



On Sun, 25 Oct 2020 at 14:38, <2qdxy4rzwzuui...@potatochowder.com> wrote:

> On 2020-10-25 at 16:34:14 +0000,
> George Harding <george.winton.hard...@gmail.com> wrote:
>
> > some_iter = map(lambda x: x if print(x) else x, some_iter)
> >
> > The tuple has a ~50% overhead, the case statement ~15%, compared to the
> > generator.
>
>     def print_first(x):
>         print(x)
>         return x
>     new_iter = map(print_first, some_iter)
>
> No extranous tuple, no extranous case stament.  Newlines are cheap these
> days.  The call to print, however, is possibly unbounded in time and
> space.
>
> If you really want to go overboard, put something like the following
> peeker function into your personal toolbox (untested):
>
>     def peeker(function):
>         def peeker(x):
>             function(x)
>             return x
>         return peeker
>
> And use it like this:
>
>     new_iter = map(peeker(print), some_iter)
> _______________________________________________
> Python-ideas mailing list -- python-ideas@python.org
> To unsubscribe send an email to python-ideas-le...@python.org
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at
> https://mail.python.org/archives/list/python-ideas@python.org/message/RG2ZQD5NNU2BKVTC2AZGSQNVZA2CV2UJ/
> Code of Conduct: http://python.org/psf/codeofconduct/
>
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/RUNCSDTTB5NTGYUUQAFZZI33XBZSEWUZ/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to