Advertisement
Guest User

Untitled

a guest
Feb 17th, 2020
270
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.80 KB | None | 0 0
  1. # seed 1 is pick 31, seed 1 in opposite conference is pick 30
  2. # picks 28 and 29 are conference runners up
  3. # Division leaders are 24-27
  4.  
  5.  
  6. divisions = {'Metro': ('New Jersey Devils', 'Washington Capitals', 'Pittsburgh Penguins', 'New York Islanders',
  7. 'New York Rangers', 'Philadelphia Flyers', 'Carolina Hurricanes', 'Columbus Blue Jackets'),
  8. 'Atlantic': ('Boston Bruins', 'Tampa Bay Lightning', 'Buffalo Sabres', 'Florida Panthers',
  9. 'Montréal Canadiens', 'Ottawa Senators', 'Detroit Red Wings', 'Toronto Maple Leafs'),
  10. 'Central': ('Dallas Stars', 'St. Louis Blues', 'Colorado Avalanche', 'Nashville Predators',
  11. 'Winnipeg Jets', 'Minnesota Wild', 'Chicago Blackhawks'),
  12. 'Pacific': ('Edmonton Oilers', 'Vancouver Canucks', ' Vegas Golden Knights', 'Calgary Flames',
  13. 'Arizona Coyotes', 'San Jose Sharks', 'Anaheim Ducks', 'Los Angeles Kings')}
  14.  
  15.  
  16. conferences = {'Metro': 'Atlantic',
  17. 'Atlantic': 'Metro',
  18. 'Pacific': ' Central',
  19. 'Central': 'Pacific'}
  20.  
  21.  
  22. def get_standings(raw_points):
  23. playoff_teams = get_playoff_teams(raw_points)
  24. lottery_teams = get_lottery_teams(raw_points, playoff_teams)
  25. playoff_teams = sort_by_playoff_success(playoff_teams)
  26. standings = playoff_teams + lottery_teams
  27. return standings
  28.  
  29.  
  30. def get_playoff_teams(raw_points):
  31. num_teams = {'Atlantic': 0, 'Metro': 0, 'Central': 0, 'Pacific': 0}
  32. playoff_teams = []
  33. for teamName in raw_points:
  34. if num_teams['Atlantic'] + num_teams['Metro'] + num_teams['Central'] + num_teams['Pacific'] == 16:
  35. break
  36. for division in divisions:
  37. print(division) # if each division is printed 4 times, switch the continue on line 37 to break
  38. if teamName in division and num_teams[division] < 5 and (num_teams[conferences[division]] + num_teams[division]) < 5:
  39. playoff_teams.append(teamName)
  40. num_teams[division] += 1
  41. continue
  42. return playoff_teams
  43.  
  44.  
  45. def get_lottery_teams(raw_points, playoff_teams):
  46. lottery_teams = []
  47. for teamName in raw_points:
  48. if teamName not in playoff_teams:
  49. lottery_teams.append(teamName)
  50. return lottery_teams
  51.  
  52.  
  53. def sort_by_playoff_success(playoff_teams):
  54. cup_champs = playoff_teams[0]
  55. runner_up = get_runner_up(playoff_teams, cup_champs)
  56. other_div_champs = get_div_champs(playoff_teams)
  57. sorted_teams = [cup_champs, runner_up, other_div_champs[2], other_div_champs[3]]
  58. for teamName in playoff_teams[1:]:
  59. if teamName not in sorted_teams:
  60. sorted_teams.append(teamName)
  61. return sorted_teams
  62.  
  63.  
  64. def get_runner_up(playoff_teams, champs):
  65. cup_div = get_division(champs)
  66. for i in range(1, len(playoff_teams)):
  67. cup_runup = playoff_teams[i]
  68. runup_div = get_division(cup_runup)
  69. if conferences[cup_div] != runup_div:
  70. return cup_runup
  71.  
  72.  
  73. def get_div_champs(playoff_teams):
  74. div_leaders = [playoff_teams[0], get_runner_up(playoff_teams, playoff_teams[0])]
  75. for i in range(1, len(playoff_teams)):
  76. candidate = playoff_teams[i]
  77. if candidate not in div_leaders:
  78. candidate_division = get_division(candidate)
  79. for teamName in div_leaders:
  80. if candidate_division != get_division(teamName):
  81. div_leaders.append(candidate)
  82. return div_leaders
  83.  
  84.  
  85. def get_division(teamName):
  86. for division in divisions:
  87. if teamName in divisions[division]:
  88. return division
  89.  
  90.  
  91. ############################
  92. standings.reverse()
  93. raw_standings = [] # list of teams ordered best-worst
  94. sorted_standing = get_standings(standings)
  95. print(sorted_standing)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement