Guest User

Untitled

a guest
Jul 31st, 2012
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.80 KB | None | 0 0
  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)
Advertisement
Add Comment
Please, Sign In to add comment