|
| 1 | +from collections import OrderedDict |
| 2 | + |
| 3 | +tableformat = '{:<31}|{:>3} |{:>3} |{:>3} |{:>3} |{:>3}' |
| 4 | + |
1 | 5 | def tally(rows):
|
2 |
| - |
| 6 | + |
3 | 7 | scoreboard = {
|
4 | 8 | "Allegoric Alaskans" : {
|
5 | 9 | "MP" : 0,
|
@@ -28,48 +32,45 @@ def tally(rows):
|
28 | 32 | "D" : 0,
|
29 | 33 | "L" : 0,
|
30 | 34 | "P" : 0
|
31 |
| - } |
| 35 | + }, |
32 | 36 | }
|
33 | 37 |
|
34 | 38 | for i in rows:
|
35 | 39 | elements = i.split(';')
|
36 | 40 | home = elements[0]
|
37 | 41 | away = elements[1]
|
38 | 42 | result = elements[2]
|
39 |
| - |
| 43 | + |
40 | 44 | if result == 'win':
|
41 |
| - scoreboard[home]['MP'] = scoreboard[home]['MP']+1 |
| 45 | + scoreboard[home]['MP'] = scoreboard[home]['MP']+1 |
42 | 46 | scoreboard[away]['MP'] = scoreboard[away]['MP']+1
|
43 |
| - scoreboard[home]['W'] = scoreboard[home]['W']+1 |
| 47 | + scoreboard[home]['W'] = scoreboard[home]['W']+1 |
44 | 48 | scoreboard[away]['L'] = scoreboard[away]['L']+1
|
45 |
| - scoreboard[home]['P'] = scoreboard[home]['P']+3 |
| 49 | + scoreboard[home]['P'] = scoreboard[home]['P']+3 |
46 | 50 | #print('The home was '+home+' the away was '+away+' and the result was '+result)
|
47 | 51 | elif result == 'draw':
|
48 |
| - scoreboard[home]['MP'] = scoreboard[home]['MP']+1 |
| 52 | + scoreboard[home]['MP'] = scoreboard[home]['MP']+1 |
49 | 53 | scoreboard[away]['MP'] = scoreboard[away]['MP']+1
|
50 |
| - scoreboard[home]['D'] = scoreboard[home]['D']+1 |
| 54 | + scoreboard[home]['D'] = scoreboard[home]['D']+1 |
51 | 55 | scoreboard[away]['D'] = scoreboard[away]['D']+1
|
52 | 56 | scoreboard[home]['P'] = scoreboard[home]['P']+1
|
53 |
| - scoreboard[away]['P'] = scoreboard[away]['P']+1 |
| 57 | + scoreboard[away]['P'] = scoreboard[away]['P']+1 |
54 | 58 | elif result == 'loss':
|
55 |
| - scoreboard[home]['MP'] = scoreboard[home]['MP']+1 |
| 59 | + scoreboard[home]['MP'] = scoreboard[home]['MP']+1 |
56 | 60 | scoreboard[away]['MP'] = scoreboard[away]['MP']+1
|
57 |
| - scoreboard[home]['L'] = scoreboard[home]['L']+1 |
| 61 | + scoreboard[home]['L'] = scoreboard[home]['L']+1 |
58 | 62 | scoreboard[away]['W'] = scoreboard[away]['W']+1
|
59 |
| - scoreboard[away]['P'] = scoreboard[away]['P']+3 |
60 |
| - |
61 |
| - table = [] |
62 |
| - |
63 |
| - table.append("Team | MP | W | D | L | P") |
64 |
| - #output_line = str |
65 |
| - for field, v in scoreboard.items(): |
66 |
| - table.append('{}|{}|{}|{}|{}|{}'.format(field, v['MP'], v['W'],v['D'],v['L'],v['P'])) |
67 |
| - |
68 |
| - |
69 |
| - |
| 63 | + scoreboard[away]['P'] = scoreboard[away]['P']+3 |
70 | 64 |
|
| 65 | + ordered = OrderedDict(sorted(scoreboard.items(), key=lambda i: i[1]['P'], reverse=True)) |
71 | 66 |
|
72 |
| - return table |
| 67 | + header = [tableformat.format('Team', 'MP', 'W', 'D', 'L', 'P',)] |
| 68 | + table = [tableformat.format(field, |
| 69 | + v['MP'], |
| 70 | + v['W'], |
| 71 | + v['D'], |
| 72 | + v['L'], |
| 73 | + v['P'],) for field, v in ordered.items() if v['MP'] > 0] |
73 | 74 |
|
74 |
| - |
| 75 | + return header + table |
75 | 76 | pass
|
0 commit comments