python - 比较Python中的两个字典

标签 python dictionary

我有两个 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/

相关文章:

python - 在函数中绑定(bind)对象值(闭包)

python - 直方图和不区分大小写的python?

python - 将日期和时间(时间戳)合并到数据帧列表中

python - 在 Aptana 3 中调试 python

python - 字典理解索引错误

java - 在 Scala 中获取 Json 值 scala.util.parsing.json.JSON

python - 三个列表压缩到字典列表中

c# - 委托(delegate)字典模式的默认值

python - 是否有与 pythonic "if __name__ == "__main_ _": main()"等效的 R?

python - Django get_or_create 抛出完整性错误