tables = {'萧峰':{'筋骨':20,'敏捷':17,'气势':20,'反应':20,'技巧':18,'内力':19}, '杨过':{'筋骨':18,'敏捷':19,'气势':17,'反应':20,'技巧':18,'内力':18}, '令狐冲':{'筋骨':12,'敏捷':17,'气势':14,'反应':20,'技巧':19,'内力':13}, '张无忌':{'筋骨':20,'敏捷':17,'气势':15,'反应':14,'技巧':20,'内力':20}, '郭靖':{'筋骨':19,'敏捷':18,'气势':19,'反应':18,'技巧':19,'内力':20}} 现需要求某个人的总分排名。 输入:萧峰 输出:1 输入:黄蓉 输出:查无此人
时间: 2023-08-06 08:19:28 浏览: 156
好的,这是一个关于武侠人物属性的字典,你想查询某个人的总分排名。那么首先需要计算每个人的总分,然后按照总分从高到低进行排名。以下是实现代码:
```python
tables = {'萧峰':{'筋骨':20,'敏捷':17,'气势':20,'反应':20,'技巧':18,'内力':19},
'杨过':{'筋骨':18,'敏捷':19,'气势':17,'反应':20,'技巧':18,'内力':18},
'令狐冲':{'筋骨':12,'敏捷':17,'气势':14,'反应':20,'技巧':19,'内力':13},
'张无忌':{'筋骨':20,'敏捷':17,'气势':15,'反应':14,'技巧':20,'内力':20},
'郭靖':{'筋骨':19,'敏捷':18,'气势':19,'反应':18,'技巧':19,'内力':20}}
# 计算每个人的总分
total_scores = {}
for name, score_dict in tables.items():
total_score = sum(score_dict.values())
total_scores[name] = total_score
# 根据总分进行排名
sorted_scores = sorted(total_scores.items(), key=lambda x: x[1], reverse=True)
# 查询指定人的排名
name = input('请输入要查询排名的人名:')
if name in tables:
rank = sorted_scores.index((name, total_scores[name])) + 1
print(f'{name} 的总分为 {total_scores[name]},排名第 {rank}。')
else:
print('查无此人')
```
你可以将以上代码保存为一个 Python 文件,然后在命令行中运行该文件,根据提示输入要查询排名的人名即可。
阅读全文