[Python-Dev] PEP 8: Discourage named lambdas? (original) (raw)

Alex Martelli aleaxit at gmail.com
Sun May 4 19:23:40 CEST 2008


On Sun, May 4, 2008 at 3:31 AM, Raymond Hettinger <python at rcn.com> wrote: ...

for k,g in groupby(iterable, key=lambda r: (r[0].lower(), r[5].lower())): ... lastnamefirstname = lambda r: (r[0].lower(), r[5].lower()) for k, g in groupby(iterable, key=lastnamefirstname): ...

That transformation adds clarity. Going further and creating a separate def-statement outside the current function would just move the relevant code farther away and impair readability.

And that would be totally silly and uncalled for -- why ever would it be placed outside the current function?! What a straw-man...! Just do

def last_first(r): return r[0].lower(), r[5].lower() for k, g in groupby(iterable, key=last_first): ...

putting the def right where you now have the " = lambda ..." of course!

Alex



More information about the Python-Dev mailing list