从表中获取元素并计算总数

时间:2017-04-18 07:52:12

标签: python

我有一张桌子代表游戏的结果。

GameTab = [['TRE','ARD','1','1'],['PRK','GEA','2','3'],['ARD','PRK','1','0'],['TRE','GEA','2','1']]

我将文本文件的结果附加到表格中,所以这里是文本格式:为了更容易,它被解释为例如,TRE得分为1,ARD得分为1. PRK得分2,GEA得3分。

TRE:ARD:1:1
PRK:GEA:2:3
ARD:PRK:1:0
TRE:GEA:2:1

我不想获得玩家的结果,而是想获得对手的结果。我已经完成了我的代码,它获得了玩家的结果,但我无法想出获得对手结果的方法。

例如,在PRK的比赛中:GEA和TRE:GEA:

The opponent of GEA scored a total of: 4

我的代码:

gameTab =[['TRE','ARD','1','1'],['PRK','GEA','2','3'],['ARD','PRK','1','0'],
          ['TRE','GEA','2','1']]

dictionary = {}
for i in gameTab:
    for c in range(len(i[:2])):
        if i[:2][c] not in dictionary.keys():
               dictionary[i[:2][c]] = int(i[2:][c])
        else:
            dictionary[i[:2][c]] += int(i[2:][c])
print(dictionary)

2 个答案:

答案 0 :(得分:0)

为了获得对手对阵球队的结果,以下代码满足条件:

gameTab =[['TRE','ARD','1','1'],['PRK','GEA','2','3'],['ARD','PRK','1','0'],['TRE','GEA','2','1']]

dictionary = {}
for i in gameTab:
    if i[0] in dictionary:
    dictionary[i[0]] += int(i[3])
    else:
    dictionary[i[0]] = int(i[2])

    if i[1] in dictionary:
    dictionary[i[1]] += int(i[2])
    else:
    dictionary[i[1]] = int(i[2])

print(dictionary)

打印出来:{'ARD': 1, 'GEA': 4, 'TRE': 2, 'PRK': 3}

基本上遍历列表列表,并且每个团队检查它是否存在于字典中,然后将其值增加为对手值。最后,你会得到反对派对阵球队的所有得分。

答案 1 :(得分:0)

gametab = [['TRE','ARD','1','1'],['PRK','GEA','2','3'],['ARD','PRK','1','0'],['TRE','GEA','2','1']]

dicta = {}
for i in range(len(gametab)):
    for j in range(2):
        if gametab[i][j] in dicta:
            dicta[gametab[i][j]] += int(gametab[i][j+2])
        else:
            dicta[gametab[i][j]] = int(gametab[i][j+2])

print dicta