Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.06 KB | None | 0 0
  1. def open_file(filename):
  2. try:
  3. file = open(filename, 'r')
  4. except:
  5. file = None
  6. # try to open file
  7. # except: return none
  8. return file
  9.  
  10. def create_players_dict(file_stream):
  11. the_dict = {}
  12. for line in file_stream:
  13.  
  14. rank, name, country, rating, byear = line.split(';')
  15. lastname, firstname = name.split(',')
  16.  
  17.  
  18. #clear whitespace from last and firstname
  19. firstname = firstname.strip()
  20. lastname = lastname.strip()
  21. country = country.strip()
  22.  
  23. key = "{}{}".format(firstname, lastname)
  24. value = (int(rank), country, int(rating), int(byear))
  25. the_dict[key] = value
  26.  
  27.  
  28. return the_dict
  29.  
  30. def create_countries_dict(dict_players):
  31. country_dict = {}
  32. # chess_player = name, chess_player_data = tuple of attributes
  33. for chess_players, chess_players_data in dict_players.items():
  34. country = chess_players_data[1]
  35. if country in country_dict:
  36. name_list = country_dict[country]
  37. name_list.append(chess_players)
  38. else:
  39. country_dict[country] = [chess_players] # initilize new list w. 1 name and add to dict
  40.  
  41. return country_dict
  42.  
  43. def print_sorted(dict_countries, dict_players):
  44. sorted_dict = sorted(dict_countries.items())
  45. for key, players in sorted_dict:
  46. avrage_rating = get_avrage_rating(players, dict_players)
  47. print(avrage_rating)
  48.  
  49. return
  50.  
  51.  
  52. def get_avrage_rating(players, dict_players):
  53. total = 0
  54. for player in players:
  55. total += dict_players[player][2]
  56.  
  57. return total/len(players)
  58.  
  59.  
  60. def printHelper(dictionary):
  61. for key, value in dictionary.items():
  62. print(key, value)
  63.  
  64.  
  65. # Main starts here
  66. filename = input("Enter filename: ")
  67. file_stream = open_file(filename)
  68. if file_stream:
  69. dict_players = create_players_dict(file_stream)
  70. printHelper(dict_players)
  71. dict_countries = create_countries_dict(dict_players)
  72. printHelper(dict_countries)
  73. print_sorted(dict_countries, dict_players)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement