Python对换字典键值对(反转字典)

def swapDict(d):
    '''对换字典键值对'''
    result = {}
    for k, v in d.items():
        for _k in v:
            result.setdefault(_k, {})
            result[_k][k] = d[k][_k]
    return result
d = {
    '小明': {'语文': 80, '数学': 100, '英语': 70, '物理': 60, '化学': 70, '生物': 80, '政治': 90, '历史': 100, '地理': 77, },
    '小红': {'语文': 90, '数学': 90, '英语': 70, '物理': 66, '化学': 87, '生物': 67, '政治': 63, '历史': 57, '地理': 88, },
    '张三': {'语文': 100, '数学': 80, '英语': 70, '物理': 73, '化学': 83, '生物': 91, '政治': 78, '历史': 88, '地理': 81, },
    '李四': {'语文': 60, '数学': 60, '英语': 70, '物理': 88, '化学': 90, '生物': 86},
    '王五': {'语文': 70, '数学': 70, '英语': 70, '政治': 88, '历史': 88, '地理': 84},
}
print(swapDict(d))
{'语文': {'小明': 80, '小红': 90, '张三': 100, '李四': 60, '王五': 70},
 '数学': {'小明': 100, '小红': 90, '张三': 80, '李四': 60, '王五': 70},
 '英语': {'小明': 70, '小红': 70, '张三': 70, '李四': 70, '王五': 70},
 '物理': {'小明': 60, '小红': 66, '张三': 73, '李四': 88},
 '化学': {'小明': 70, '小红': 87, '张三': 83, '李四': 90},
 '生物': {'小明': 80, '小红': 67, '张三': 91, '李四': 86},
 '政治': {'小明': 90, '小红': 63, '张三': 78, '王五': 88},
 '历史': {'小明': 100, '小红': 57, '张三': 88, '王五': 88},
 '地理': {'小明': 77, '小红': 88, '张三': 81, '王五': 84}}
发布了223 篇原创文章 · 获赞 63 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/lly1122334/article/details/104017192