比较python中的2个词典

时间:2012-07-16 12:24:42

标签: python dictionary

我在Python中有两个词典。一个是团队列表及其在联赛表中的排名,每个团队都是一个关键,他们的排名是关联值。另一个是关于每个团队的数据,团队名称是密钥的值:

RankDict = {'Tigers':'1','Lions':'2', 'Pumas':'3', 'Wolves':'4'}

TeamDict = {'TeamRecords':[{'Team': 'Lions', 'Location':'Greenville', 
             'HomeGround':'Trec Park', 'Coach': 'K. Wilson'},
            {'Team':'Pumas', 'Location':'Fairlodge', 
             'HomeGround':'Fairlodge Fields', 'Coach':'G. Kennedy'}]}

我想要做的是根据TeamDict中与团队相关联的排名打印RankDict字典中的详细信息,但不能只进行直接密钥比较,因为密钥不是'常见的。任何人都可以帮助我吗?

我在文档中找不到关于此类词典比较的任何内容。也许它甚至不可能?

1 个答案:

答案 0 :(得分:2)

以下将打印团队,排名和团队详细信息(按排名排序):

import operator

RecordsByTeam = {}
for r in TeamDict['TeamRecords']:
    RecordsByTeam[r['Team']] = r

for team, rank in sorted(RankDict.items(), key=operator.itemgetter(1)):
    print team
    print rank
    try:        
        print RecordsByTeam[team]
    except KeyError:
        print 'No details could be found for team', team

请注意,我在打印团队详细信息时正在执行try/except,因为TeamDict不包含有关每个团队的信息。

另请注意,您应该在RankDict中使用整数作为排名,否则当有一个团队(例如'11'作为排名时,上述代码将无法正确排序(它将排序: '11''2''3''4')。