假设字典dic3存放了学生的成绩,内容为: {"李刚": 93, "陈静": 78, "张金柱": 88, "赵启山": 91, "李鑫": 65, "黄宁": 83} 试编写python程序,按成绩从高到低的顺序输出学生的姓名和成绩,最后输出学生的平均分
时间: 2023-09-08 20:16:30 浏览: 80
可以使用sorted函数对字典按照value进行排序,然后遍历输出学生的姓名和成绩,最后计算平均分。
示例代码如下:
```python
dic3 = {"李刚": 93, "陈静": 78, "张金柱": 88, "赵启山": 91, "李鑫": 65, "黄宁": 83}
# 按成绩从高到低排序
sorted_dic = sorted(dic3.items(), key=lambda x: x[1], reverse=True)
# 输出学生的姓名和成绩
for item in sorted_dic:
print(item[0], item[1])
# 计算平均分
avg_score = sum(dic3.values()) / len(dic3)
print("平均分:", avg_score)
```
输出结果:
```
李刚 93
赵启山 91
张金柱 88
黄宁 83
陈静 78
李鑫 65
平均分: 83.0
```
相关问题
假设字典dic score存放了学生的成绩,内容为“李刚“93."陈静":78.张金柱"88"赵启山491-李分:65-黄宁-23
这个字典的格式不太规范,需要先进行格式化处理。假设每个学生的成绩都用一个键值对表示,键为学生姓名,值为分数。对于多个姓名相同的学生,可以在姓名后面加上一个唯一的编号,例如“李刚1”、“李刚2”等。
经过格式化处理,可以得到以下字典:
```
scores = {
"李刚1": 93,
"陈静": 78,
"张金柱": 88,
"赵启山491": 65,
"李分": 65,
"黄宁-23": None
}
```
注意最后一个学生“黄宁-23”的分数为None,表示该学生没有成绩记录。
如果想要获取某个学生的成绩,可以使用字典的get方法,例如:
```
score = scores.get("李刚1")
if score is not None:
print("李刚1的成绩是:", score)
else:
print("找不到李刚1的成绩")
```
如果想要获取所有学生的姓名和成绩,可以使用字典的items方法,例如:
```
for name, score in scores.items():
print(name, "的成绩是:", score)
```
输出结果如下:
```
李刚1 的成绩是: 93
陈静 的成绩是: 78
张金柱 的成绩是: 88
赵启山491 的成绩是: 65
李分 的成绩是: 65
黄宁-23 的成绩是: None
```
假设字典dic score存放了学生的成绩,内容为“李刚“93."陈静":78.张金柱"88"赵启山“91-李分:李鑫:65“黄宁83。输出每位学生的名字
可以使用正则表达式来匹配字符串中的学生姓名,具体代码如下:
```python
import re
scores = '李刚93.陈静:78.张金柱88赵启山91-李分:李鑫:65黄宁83'
pattern = '[\u4e00-\u9fa5]+'
names = re.findall(pattern, scores)
print(names)
```
输出结果为:
```
['李刚', '陈静', '张金柱', '赵启山', '李分', '李鑫', '黄宁']
```
其中 `[\u4e00-\u9fa5]+` 是一个正则表达式,用于匹配一个或多个中文字符。`re.findall()` 函数则可以在字符串 `scores` 中找到所有符合正则表达式的子串,并返回一个列表。