On 2017-01-09 13:16, Paul Rubin wrote: > Tim Chase <python.l...@tim.thechases.com> writes: > >> result = [(tmp, tmp+1) for tmp in map(expensive_calculation, > >> data)] > > > > As charmingly expressive as map() is, the wildly different > > behavior in py3 (it's a generator that evaluates lazily) vs py2 > > (it consumes the entire iterable in one go) leads me to avoid it > > in general, > > Well, there's itertools.imap which maps lazily in py2.
Yes, but it's one of those things that I have to remember to distinguish which one I use based on whether I'm working in py2 or py3. Meanwhile, using a generator expression is readable (my #1 reason for using Python is its readability) and works across 2 and 3 without changes or thinking about it further. So that's what I tend to use. -tkc -- https://mail.python.org/mailman/listinfo/python-list