Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #4061

Re: Simple map/reduce utility function for data analysis

From Raymond Hettinger <python@rcn.com>
Newsgroups comp.lang.python
Subject Re: Simple map/reduce utility function for data analysis
Date 2011-04-26 11:12 -0700
Organization http://groups.google.com
Message-ID <71335df7-4f4a-431d-9e2c-4ba1e98c3f7d@d19g2000prh.googlegroups.com> (permalink)
References <967b61ce-5641-484a-bd76-5a09bd4247e0@w9g2000prg.googlegroups.com> <7xei4pohrq.fsf@ruckus.brouhaha.com>

Show all headers | View raw


On Apr 25, 7:42 pm, Paul Rubin <no.em...@nospam.invalid> wrote:
> Raymond Hettinger <pyt...@rcn.com> writes:
> > Here's a handy utility function for you guys to play with:
> >    http://code.activestate.com/recipes/577676/
>
> Cute, but why not use collections.defaultdict for the return dict?
> Untested:

My first draft had a defaultdict but that implementation detail would
get exposed to the user unless the return value was first coerced to a
regular dict.  Also, I avoided modern python features so the code
would run well on psyco and so that it would make sense to beginning
users.


> Untested:
>   d = defaultdict(list)
>   for key,value in ifilter(bool,imap(mapper, data)):
>      d[key].append(value)
>   ...

Nice use of itertools.  FWIW, ifilter() will accept None for the first
argument -- that's a bit faster than using bool().


Raymond

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Simple map/reduce utility function for data analysis Raymond Hettinger <python@rcn.com> - 2011-04-25 16:48 -0700
  Re: Simple map/reduce utility function for data analysis Paul Rubin <no.email@nospam.invalid> - 2011-04-25 19:42 -0700
    Re: Simple map/reduce utility function for data analysis Raymond Hettinger <python@rcn.com> - 2011-04-26 11:12 -0700
  Re: Simple map/reduce utility function for data analysis Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2011-04-26 02:52 +0000

csiph-web