# [Tutor] Getting the highest numbers from a list

**Ignacio Vazquez-Abrams
**
ignacio@openservices.net

*Mon, 27 Aug 2001 15:05:04 -0400 (EDT)*

On Mon, 27 Aug 2001, David L. Lerner wrote:
>* Is there a simple way to get the _n_ highest numbers from an unordered list?
*>*
*>* I have a long list that I randomly generated. I need the five highest
*>* numbers. I have another long list, also randomly generated, from which I
*>* need the _sum_ of the five highest numbers
*>*
*>* I know max(start_list) will give me the single highest number in the list
*>* "start_list". How do I get the five highest numbers?
*>*
*>*
*>* Here's my solution, but it's ugly.
*
Here are my changes:
>* -----------------------------
*
import operator
>* start_list=[7, 6, 6, 15, 9, 0, 9, 10, 12, 10, 11, 15, 2, 8, 0, 4, 10, 1, 3,
*>* 14]
*>* ## start_list is the original version of the first list.
*>*
*>* start_list2=[2, 13, 0, 10, 10, 3, 3, 5, 9, 11, 10, 5, 9, 14, 4, 6, 5, 3, 11,
*>* 11, 9]
*>* ## start_list2 is the original version of the second list
*
# in start_list2. I only use it to find the last five.
>*
*>* print 'The first list:', start_list
*>* print 'The second list:', start_list2
*>*
*>* start_list.sort()
*
high_list=start_list[-5:]
>* high_list.reverse()
*>*
*>* start_list2.sort()
*
high_list2=start_list2[-5:]
high_sum=reduce(operator.add, high_list2)
>* print 'The five highest numbers in the first list:', high_list
*>* print 'The sum of the five highest numbers in the second list:', high_sum
*>*
*>* -----------------------------
*>* Thank you
*>*
*>* David L. Lerner
*>* dell2100@prodigy.net
*>* Often, the most striking and innovative solutions come from realizing that
*>* your concept of the problem was wrong.
*>* Eric Steven Raymond
*
Better? :)
--
Ignacio Vazquez-Abrams <ignacio@openservices.net>