best Pythonic way to do this sort: Python newb
Satchidanand Haridas
sharidas at zeomega.com
Mon Oct 10 01:51:29 EDT 2005
----
Satchidanand Haridas (sharidas at zeomega dot com)
ZeOmega (www.zeomega.com)
Open Minds' Open Solutions
Sean Berry wrote:
>"Paul Rubin" <http://phr.cx@NOSPAM.invalid> wrote in message
>news:7xbr1y9e1c.fsf at ruckus.brouhaha.com...
>
>
>>"Sean Berry" <sean at buildingonline.com> writes:
>>
>>
>>>myList = [[value1, value2, value3],[value1, value2, value3], ...]
>>>
>>>I have a function which takes value3 from the lists above and returns
>>>another value. I want to use this returned value to sort the lists.
>>>
>>>So, my resultant list would be ordered by the return value of the
>>>function with value3 as its argument.
>>>
>>>From a relative Python newb, what is the best way to do this?
>>>
>>>
>>def get_key(x): return x[2]
>>sorted_list = sorted(myList, key=get_key)
>>
>>
>
>Sorry if I am missing something. But. what is sorted here?
>
>My simplified function looks like this
>
>def myFunction( myNumber ):
> "do some math calculations to myNumber"
> return "result of calculations"
>
>So, I want to sort myList by the return of myFunction( value3 )
>
>I tried doing the following... with no luck so far
>myList.sort(lambda x, y: cmp(myFunction(x[2]), myFunction(y[2]))
>
>
>
I think the above statement should be as follows:
myList.sort(lambda x, y: cmp(myFunction(x[2]) - myFunction(y[2]))
hope that helps.
regards,
Satchit
More information about the Python-list
mailing list