我有两个 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
字典中的详细信息,但不能只执行直键比较,因为 key 不常见。谁能帮帮我吗?
我在文档中找不到有关此类字典比较的任何内容。也许这根本不可能?
最佳答案
以下将打印团队、排名和团队详细信息(按排名排序):
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'
>).
关于python - 比较Python中的两个字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11504277/