Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 31st, 2012  |  syntax: None  |  size: 0.80 KB  |  hits: 14  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. How to order these lines for a highscore table in Python
  2. ('bob', '10')
  3. ('Ben', '10')
  4. ('Ben', '9')
  5. ('Ben', '8')
  6. ('Ben', '2')
  7. ('Ben', '6')
  8. ('Ben', '5')
  9. ('Ben', '5')
  10. ('Ben', '3')
  11. ('Ben', '2')
  12.        
  13. import ast
  14. from operator import itemgetter
  15.  
  16. def parse_item(s):
  17.   name, score = ast.literal_eval(s)
  18.   return name, int(score)
  19.  
  20. with open("infile", "r") as infile:
  21.   items = [parse_item(line.strip()) for line in infile]
  22.  
  23. for item in sorted(items, key=itemgetter(1), reverse=True):
  24.   print item
  25.        
  26. print ''.join(sorted(open('infile'), key=lambda l: -int(ast.literal_eval(l)[1]))),
  27.        
  28. sorted(l, key=lambda(name,score):int(score), reverse=True)
  29.        
  30. class Highscore:
  31.    def __init__(self, name, score):
  32.       self.name = name
  33.       self.score = score
  34.  
  35.    def __cmp__(self, other):
  36.       return -cmp(self.score, other.score)