如何将一个团队的分数加在一起?
这是我试过的:
def check_league(league_points):
league_results = []
for teams in league_points:
team, points = teams.strip().rsplit(' ', 1)
print(team, points)
这是我的列表:
['Lions 1', 'Snakes 1', 'Tarantulas 3', 'FC Awesome 0', 'Lions 1', 'FC Awesome 1', 'Tarantulas 3', 'Snakes 0', 'Lions 3', 'Grouches 0']
输出:
('Lions', '1')
('Snakes', '1')
('Tarantulas', '3')
('FC Awesome', '0')
('Lions', '1')
('FC Awesome', '1')
('Tarantulas', '3')
('Snakes', '0')
('Lions', '3')
('Grouches', '0')
我希望输出为:
'Tarantulas', '6'
'Lions', '5'
'FC Awesome', '1'
'Snakes', '1'
'Grouches', '0'
最佳答案
将 itertools.groupby
与 sorted
一起使用:
import itertools
func = lambda x:x[0]
sorted_l = sorted([i.rsplit(' ', 1) for i in l], key=func)
{k: sum(map(int, list(zip(*g))[1])) for k, g in itertools.groupby(sorted_l, key=func)}
输出:
{'FC Awesome': 1, 'Grouches': 0, 'Lions': 5, 'Snakes': 1, 'Tarantulas': 6}
关于python - 有没有办法可以为列表中的同一个团队加分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55809756/