Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # seed 1 is pick 31, seed 1 in opposite conference is pick 30
- # picks 28 and 29 are conference runners up
- # Division leaders are 24-27
- divisions = {'Metro': ('New Jersey Devils', 'Washington Capitals', 'Pittsburgh Penguins', 'New York Islanders',
- 'New York Rangers', 'Philadelphia Flyers', 'Carolina Hurricanes', 'Columbus Blue Jackets'),
- 'Atlantic': ('Boston Bruins', 'Tampa Bay Lightning', 'Buffalo Sabres', 'Florida Panthers',
- 'Montréal Canadiens', 'Ottawa Senators', 'Detroit Red Wings', 'Toronto Maple Leafs'),
- 'Central': ('Dallas Stars', 'St. Louis Blues', 'Colorado Avalanche', 'Nashville Predators',
- 'Winnipeg Jets', 'Minnesota Wild', 'Chicago Blackhawks'),
- 'Pacific': ('Edmonton Oilers', 'Vancouver Canucks', ' Vegas Golden Knights', 'Calgary Flames',
- 'Arizona Coyotes', 'San Jose Sharks', 'Anaheim Ducks', 'Los Angeles Kings')}
- conferences = {'Metro': 'Atlantic',
- 'Atlantic': 'Metro',
- 'Pacific': ' Central',
- 'Central': 'Pacific'}
- def get_standings(raw_points):
- playoff_teams = get_playoff_teams(raw_points)
- lottery_teams = get_lottery_teams(raw_points, playoff_teams)
- playoff_teams = sort_by_playoff_success(playoff_teams)
- standings = playoff_teams + lottery_teams
- return standings
- def get_playoff_teams(raw_points):
- num_teams = {'Atlantic': 0, 'Metro': 0, 'Central': 0, 'Pacific': 0}
- playoff_teams = []
- for teamName in raw_points:
- if num_teams['Atlantic'] + num_teams['Metro'] + num_teams['Central'] + num_teams['Pacific'] == 16:
- break
- for division in divisions:
- print(division) # if each division is printed 4 times, switch the continue on line 37 to break
- if teamName in division and num_teams[division] < 5 and (num_teams[conferences[division]] + num_teams[division]) < 5:
- playoff_teams.append(teamName)
- num_teams[division] += 1
- continue
- return playoff_teams
- def get_lottery_teams(raw_points, playoff_teams):
- lottery_teams = []
- for teamName in raw_points:
- if teamName not in playoff_teams:
- lottery_teams.append(teamName)
- return lottery_teams
- def sort_by_playoff_success(playoff_teams):
- cup_champs = playoff_teams[0]
- runner_up = get_runner_up(playoff_teams, cup_champs)
- other_div_champs = get_div_champs(playoff_teams)
- sorted_teams = [cup_champs, runner_up, other_div_champs[2], other_div_champs[3]]
- for teamName in playoff_teams[1:]:
- if teamName not in sorted_teams:
- sorted_teams.append(teamName)
- return sorted_teams
- def get_runner_up(playoff_teams, champs):
- cup_div = get_division(champs)
- for i in range(1, len(playoff_teams)):
- cup_runup = playoff_teams[i]
- runup_div = get_division(cup_runup)
- if conferences[cup_div] != runup_div:
- return cup_runup
- def get_div_champs(playoff_teams):
- div_leaders = [playoff_teams[0], get_runner_up(playoff_teams, playoff_teams[0])]
- for i in range(1, len(playoff_teams)):
- candidate = playoff_teams[i]
- if candidate not in div_leaders:
- candidate_division = get_division(candidate)
- for teamName in div_leaders:
- if candidate_division != get_division(teamName):
- div_leaders.append(candidate)
- return div_leaders
- def get_division(teamName):
- for division in divisions:
- if teamName in divisions[division]:
- return division
- ############################
- standings.reverse()
- raw_standings = [] # list of teams ordered best-worst
- sorted_standing = get_standings(standings)
- print(sorted_standing)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement