seemingly simple list indexing problem

Guilherme Polo ggpolo at gmail.com
Mon Jul 28 18:33:38 EDT 2008


On Mon, Jul 28, 2008 at 7:00 PM, Gary Herron <gherron at islandtraining.com> wrote:
> 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.

It wasn't supposed to be the fastest solution, also, he didn't mention
duplicated items.

>
> 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
>>>
>>>
>>
>>
>>
>>
>
> --
> http://mail.python.org/mailman/listinfo/python-list
>



-- 
-- Guilherme H. Polo Goncalves



More information about the Python-list mailing list