比较python中的两个词典
我有两本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
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