۰ ameysam
تمرین - اضافه کردن تفاضل گل برای محاسبه جایگاه تیم‌ها
جامعه پایتون (وب) ایجاد شده در ۰۳ اسفند ۱۴۰۰
from data import teams
def parse_result_old(team):
    return {
        'name': team['name'],
        'win': team['result'].count('w'),
        'lose': team['result'].count('l'),
        'draw': team['result'].count('d'),
    }
def parse_result(team):
    result = {
        'w': 0,
        'd': 0,
        'l': 0,
    }
    for i in team['result']:
        result[i] += 1
    return {
        'name': team['name'],
        'win': result['w'],
        'lose': result['l'],
        'draw': result['d'],
        'gol_zade': team['gol_zade'],
        'gol_khorde': team['gol_khorde'],
    }
def calc_score(team):
    # محاسبه امتیاز
    score = team['win'] * 3 + team['draw']
    # محاسبه تفاضل گل
    goal_difference = team['gol_zade'] - team['gol_khorde']
    team['score'] = score
    team['goal_difference'] = goal_difference
    return team
score_board = (map(parse_result, teams))
score_board = (map(calc_score, score_board))
score_board = sorted(score_board, key=lambda x: (x['score'], x['goal_difference']), reverse=True)
for index, item in enumerate(score_board):
    print(index+1, item)