On Tuesday, March 11, 2014 9:25:29 AM UTC-7, John Gordon wrote: > > > > > Why do you say that 'key=lambda x: x.name.lower' is the correct form? That > > returns the str.lower() function object, which is a silly thing to sort > > on. Surely you want to sort on the *result* of that function, which is > > what your second print does. >
>From http://docs.python.org/2/library/functions.html: key specifies a function of one argument that is used to extract a comparison key from each list element: key=str.lower. The default value is None (compare the elements directly). And from https://wiki.python.org/moin/HowTo/Sorting/: The value of the key parameter should be a function that takes a single argument and returns a key to use for sorting purposes. This technique is fast because the key function is called exactly once for each input record. ... Of course, now that I re-read that, I was mistaking the lambda function with the definition of the lambda function. Stupid me. -- https://mail.python.org/mailman/listinfo/python-list