python - 有没有办法可以为列表中的同一个团队加分?

标签 python arrays python-3.x list

如何将一个团队的分数加在一起?

这是我试过的:

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.groupbysorted 一起使用:

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/

相关文章:

c - 如何在C中将链表中的字符复制到数组中?

java - 通过 ActiveMQ 将字节数组作为属性发送

python-3.x - Jupyter笔记本电脑随机停止使用所有CPU内核

python将 map 转换为列表需要很长时间

python - 使用 "wait_variable()"时无法退出 tkinter 应用程序

python - 如何在 md5 指纹识别时跳过不可散列的(损坏的)文件?

python - 是否有一个用于构建平均价格的 Python 函数,它以 2 个数组作为参数

java - 如何检查 int 是否包含字母

python - 精确匹配一个词组

python - 在Python中将子列表结构复制到另一个等长列表