我在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
字典中的详细信息,但不能只进行直接密钥比较,因为密钥不是'常见的。任何人都可以帮助我吗?
我在文档中找不到关于此类词典比较的任何内容。也许它甚至不可能?
答案 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'
)。