seemingly simple list indexing problem

Gary Herron gherron at islandtraining.com
Tue Jul 29 00:00:16 CEST 2008


Guilherme Polo wrote:
> On Mon, Jul 28, 2008 at 6:24 PM, Ervan Ensis <ervan.ensis at gmail.com> wrote:
>   
>> My programming skills are pretty rusty and I'm just learning Python so this
>> problem is giving me trouble.
>>
>> I have a list like [108, 58, 68].  I want to return the sorted indices of
>> these items in the same order as the original list.  So I should return [2,
>> 0, 1]
>>     
>
> You could simply do this:
>
> a = [108, 58, 68]
> b = sorted(a)
> [b.index(c) for c in a]
>   

Yuck.  Slow, and it fails if duplicate list elements exist.

Also...  This looks like a beginners programming assignment.    Let's 
let him try it himself.  We can offer help rather than full solutions if 
he has specific Python questions.





>   
>> For a list that's already in order, I'll just return the indices, i.e. [56,
>> 66, 76] should return [0, 1, 2]
>>
>> Any help would be appreciated.
>>
>> --
>> http://mail.python.org/mailman/listinfo/python-list
>>
>>     
>
>
>
>   




More information about the Python-list mailing list