Newbie Question: Sort Tip: Why n=n?

Joshua Muskovitz joshm at
Fri Jan 18 00:49:46 EST 2002

> def sortby(list, n):
>     nlist = map(lambda x, n=n: (x[n], x), list)
>     nlist.sort()
>     return map(lambda (key, x): x, nlist)
> I understand everything about this except the n=n in the second line.
> Does anyone know why this is required?

Because the lambda function does not have access to 'n' directly.  So it
declares a local 'n' that is set once at compile time to refer to the actual
n.  (Essentially it caches the value of 'n'.)

# Joshua Muskovitz
# joshm at
def lyyrs(sig): return '-'.join(sig.split()+["ly y'rs"])
lyyrs('Hire me!  I need the work!')

-----= Posted via Newsfeeds.Com, Uncensored Usenet News =----- - The #1 Newsgroup Service in the World!
-----==  Over 80,000 Newsgroups - 16 Different Servers! =-----

More information about the Python-list mailing list