Raymond Hettinger wrote:

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

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.

It doesn't have to be outside the function -- it can be
in exactly the same place as the lambda assignment above.

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

Maybe "def is an executable statement" is another thing
people have a blind spot about?

--
Greg
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to