Struggling with basics
Jason
jason at jasonmhirst.co.uk
Sun Sep 25 21:22:40 EDT 2005
George Sakkis wrote:
> "Jason" <jason at jasonmhirst.co.uk> wrote:
>
>> What I'd like to know is do you think it would be better to sort the
>> list in memory, or print it out sorted? If the latter, then naturally
>> I'd need to change the showScores section to show the list in a reverse
>> order. But, would sorting the list in memory be more effective?
>
> The list *is* sorted; the thing is that it is in ascending order (from lowest to highest) but you
> would rather have it in descending. There are (at least) two alternatives:
>
> 1. Keep the list as it is now in ascending order and print it in reverse. In python 2.4, this is as
> elegant and efficient as it can, using the reversed() builtin function. Just replace in showScores
> "for score,name in self.hiScores" with "for score,name in reversed(self.hiScores)". reversed()
> returns an iterator over the sequence, not a new list, so the memory overhead is minimal.
>
> 2. Instead of storing (score,name) pairs, store (-score,name). When a list of the latter is in
> ascending order, the former is in descending. In this case of course, you have to make sure that
> showScores() and lastScore() return the actual (positive) score, not the stored (negative) one.
>
> I would go for the first alternative but YMMV.
>
> George
>
>
Thanks George, I've learned a lot tonight.
More information about the Python-list
mailing list