sorting list and then return the index of the sorted item

Duncan Booth duncan.booth at invalid.invalid
Tue May 3 09:51:56 EDT 2005


custard_pie wrote:

> I need help sorting a list...I just can't figure out how to sort a list
> and then return a list with the index of the sorted items in the list
> for example if the list I want to sort is [2,3,1,4,5]
> I need [2,0,1,3,4] to be returned
> Can someone help please....
> 
> 

you need to pair up your values with the list indices, sort the list of 
pairs then strip out the indices.

One way to do it:

>>> v = [2, 3, 1, 4, 5]
>>> import operator
>>> [ i for (i,j) in sorted(enumerate(v), key=operator.itemgetter(1))]
[2, 0, 1, 3, 4]




More information about the Python-list mailing list