1

我有两个 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但不能直接进行键比较,因为键不常见。谁能帮我吗?

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

4

1 回答 1

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')。

于 2012-07-16T12:35:32.943 回答