teams = [
{'name': 'shahre_khodro', 'result': 'wwwldwwwdwlllddwdwlwlwwdldddl','scoring_goal':27,'concede_goal':25},
{'name': 'sepahan', 'result': 'wwddwwwddwldddwwdwdldwddlwllw','scoring_goal':38,'concede_goal':21},
{'name': 'esteghlal', 'result': 'lddldwwwwwwdwdwllwdwldwdwdwdd','scoring_goal':51,'concede_goal':30},
{'name': 'persepolis', 'result': 'wlwwllwwdwlwwwwwwwdwwwwwwwdld','scoring_goal':43,'concede_goal':17},
{'name': 'tractor', 'result': 'dwdwwwwlllwwdlwwlwdwllwdwdddw','scoring_goal':31,'concede_goal':22},
{'name': 'foolad', 'result': 'lddwdwwwdllwdwldwlwwwwlwlwddd','scoring_goal':27,'concede_goal':19}
]
def parse_result(team):
_win = _draw = _lose = 0
for ch in team['result']:
if ch == 'w':
_win += 1
elif ch == 'd':
_draw += 1
else:
_lose += 1
team['difference_goal'] = team['scoring_goal'] - team['concede_goal']
return {
'name': team['name'],
'win': _win,
'draw': _draw,
'lose': _lose,
'scoring_goal':team['scoring_goal'],
'concede_goal': team['concede_goal'],
'difference_goal':team['difference_goal']
}
def calculate_score(team):
score = (team['win'] * 3) + team['draw']
team['score'] = score
return team
tmp_score_board = list(map(parse_result, teams))
score_board = list(map(calculate_score, tmp_score_board))
#passed_teams = list(filter(lambda t: t['score'] >= 50, score_board))
score_board = sorted(score_board,key=lambda x: x['difference_goal'],reverse=True)
score_board = sorted(score_board,key=lambda x: x['score'],reverse=True)
for index, team in enumerate(score_board):
print(index + 1, team)
در یک فایل py نوشته شده است، ضمن اینکه ما ابتدا تابع sort را بر اساس تفاضل گل محاسبه میکنیم سپس خروجی این محاسبه را به تابع sort بعدی بر اساس امتیاز میدهیم که خروجی نهایی هر دو پارامتر نفاضل گل و امتیاز را در نظر میگرد