比较python中的两个词典

比较python中的两个词典,python,dictionary,Python,Dictionary,我有两本Python词典。一个是联赛表中球队及其排名的列表,每个球队都是一个关键,他们的排名是相关的值。另一个是关于每个团队的数据,团队名称是一个键的值: RankDict = {'Tigers':'1','Lions':'2', 'Pumas':'3', 'Wolves':'4'} TeamDict = {'TeamRecords':[{'Team': 'Lions', 'Location':'Greenville', 'HomeGround':'Trec Par

我有两本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'}]}

我想做的是根据
RankDict
中与团队相关联的排名,从
TeamDict
字典中打印详细信息,但不能直接进行键比较,因为键不常见。有人能帮我吗


我在文档中找不到关于这种字典比较的任何内容。也许这根本不可能?

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

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


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

TeamDict
不是有效的词典。@adohertyd:在编辑之前,
TeamDict
不是有效的词典,而是有效的集合文字。编辑后,两者都不是。@adohertyd-请将代码保存到文件中,并在python解释器中运行。如果解释器不接受它(运行时没有错误),那么我们也不能。“我想做的是根据与团队相关联的排名从TeamDict字典中打印详细信息”,以何种方式基于排名?为什么还要麻烦使用dict for TeamDict?为什么不直接使用与“TeamRecords”相关联的值作为列表呢?非常感谢Simeon,我想这就是我要寻找的。我只为一个示例打印了实际词典的一小部分,但无论如何我都会使用try/except函数。另外,会考虑到关于整数的一点,谢谢
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