从比赛列表中获得分数

时间:2014-12-13 21:52:10

标签: python list

我想从像这样的列表中编写一个脚本

Matches=[ ("Team Name1", 120, "Team Name2", 56 ), ... ,]

这是一个比赛列表,其中有两个队员名单和他们的成绩,给我输出一个列表,其中包含每个队名及其得分(每次获胜2分)。我的输出应该是这样的:

Team             Score
Team Name 1      26
Team Name 2      30
...

我已达到类似的目标

for match in matches:
    score=0
    if match[1] > match[3]:
        score + = 2
        res=[match[0],score]  

每个团队在匹配列表中也不会只玩一次。

2 个答案:

答案 0 :(得分:0)

希望这会有所帮助。

matches=[ ("A", 120, "B", 56 ), ("A", 120, "C", 56 ), ("B", 120, "C", 56 )]

TEAM={}

for match in matches:
    TEAM[match[0]]=0
    TEAM[match[2]]=0

for match in matches:
    if match[1] > match[3]:
        TEAM[match[0]]+=2
    elif match[3] > match[1]:
        TEAM[match[2]]+=2



for match in TEAM:
    print match, ":", TEAM[match]

答案 1 :(得分:0)

我不是建议这个答案,只是建议接受的答案也可以这样写:

matches=[ ("A", 120, "B", 56 ), ("A", 120, "C", 56 ), ("B", 120, "C", 56 )]

TEAM={}

for match in matches:
    if not match[0] in TEAM:
        TEAM[match[0]] = 0
    if not match[2] in TEAM:
        TEAM[match[2]] = 0
    if match[1] > match[3]:
        TEAM[match[0]] += 2
    elif match[3] > match[1]:
        TEAM[match[2]] += 2

for match in TEAM:
    print(match, ":", TEAM[match])

这不是一个重大变化,只是一种替代方案。