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