IPL Match Details
Write a program that reads all the match outcomes and summarizes the information of all the matches.
Points are given to the terms based on the outcome of the match.
A win earns a team 3 points.A draw earns 1.A loss earns 0.
The following information is expected:
MP:Matches Played
W:Matches Won
D:Matches Drawn(Tied)
L:Matches Lost
P:Points
The team information should be displayed in descending order of points.
Sample input 1
6
CSK;RR;loss
RR;DD;draw
MI;KKR;win
KKR;RR;loss
CSK;DD;draw
MI;DD; draw
Sample output 1
Team: RR, Matches Played: 3, Won: 2, Lost: 0, Draw: 1, Points: 7
Team: MI, Matches Played: 2, Won: 1, Lost: 0, Draw: 1, Points: 4
Team: DD, Matches Played: 3, Won: 0, Lost: 0, Draw: 3, Points: 3
Team: CSK, Matches Played: 2, Won: 0, Lost: 1, Draw: 1, Points: 1
Team: KKR, Matches Played: 2, Won: 0, Lost: 2, Draw: 0, Points: 0
def print_detail(detail):
detail = dict(sorted(detail.items(), key=lambda item: item[1][4], reverse=True))
for name in detail:
s = f"Team: {name}, "
s += f"Matches Played: {detail[name][0]}, "
s += f"Won: {detail[name][1]}, "
s += f"Lost: {detail[name][2]}, "
s += f"Draw: {detail[name][3]}, "
s += f"Points: {detail[name][4]}"
print(s)
def add_math(name, res):
global detail
if name not in detail:
detail[name] = {"mp":0,"w":0,"l":0,"d":0,"p":0}
detail[name] = [0,0,0,0,0]
if res == "win":
detail[name][1] += 1
detail[name][0] += 1
detail[name][4] += 3
elif res == "draw":
detail[name][3] += 1
detail[name][0] += 1
detail[name][4] += 1
elif res == "loss":
detail[name][2] += 1
detail[name][0] += 1
detail = {}
n = int(input())
for i in range(n):
s = input().split(";")
if s[2] == "win":
info = add_math(s[0], "win")
info = add_math(s[1], "loss")
elif s[2] == "loss":
info = add_math(s[1], "win")
info = add_math(s[0], "loss")
elif s[2] == "draw":
info = add_math(s[0], "draw")
info = add_math(s[1], "draw")
print_detail(detail)
Comments
Leave a comment