入侵龙渊 发表于 2021-3-19 15:12

python字典问题

本帖最后由 入侵龙渊 于 2021-3-19 15:39 编辑

scores_new = {'学生1':,'学生2':,'学生3':,
            '学生4':,'学生5':,'学生6':}
计算所有学生语文平均分和数学平均分
按照姓名,将所有学生的语文成绩存入scores_Chinese字典中,将所有学生的数学成绩存入scores_Maths字典中

入侵龙渊 发表于 2021-3-19 15:13

两个都需要用for循环

入侵龙渊 发表于 2021-3-19 15:26

bobcheng 发表于 2021-3-19 15:23
用for遍历两遍就可以了

能发一下代码吗?属实想不明白

zheng10072 发表于 2021-3-19 15:27

循环一遍就可以,循环时候取各科成绩到对应字典中,并计数,循环后就能计算平均成绩了

入侵龙渊 发表于 2021-3-19 15:31

zheng10072 发表于 2021-3-19 15:27
循环一遍就可以,循环时候取各科成绩到对应字典中,并计数,循环后就能计算平均成绩了

count = 0
for k in scores_new:
    if k.startswith("学生"):
      count = count + 1
print(count)
for k in scores_new:
    chinese = sum(scores_new)
    math = sum(scores_new)
    print(chinese/count)
这么写对吗?

521105 发表于 2021-3-19 15:37

本帖最后由 521105 于 2021-3-19 16:18 编辑

import numpy as np
scores_new = {'学生1':,'学生2':,'学生3':,
            '学生4':,'学生5':,'学生6':}

Chinese = np.mean( for i in scores_new])   #语文平均分数
Math = np.mean( for i in scores_new])         
scores_Chinese = {i : j for i,j in zip(scores_new, for i in scores_new.values()])}       #遍历学生名字及语文成绩生成字典
scores_Maths = {i : j for i,j in zip(scores_new, for i in scores_new.values()])}

阿伟de大长腿 发表于 2021-3-19 15:37

可以参考一下

zheng10072 发表于 2021-3-19 15:38

入侵龙渊 发表于 2021-3-19 15:31
count = 0
for k in scores_new:
    if k.startswith("学生"):


对不对代码跑跑就知道了,要学会自己排错学习起来才快

入侵龙渊 发表于 2021-3-19 15:38

阿伟de大长腿 发表于 2021-3-19 15:37
可以参考一下

十分感谢

Cool_Breeze 发表于 2021-3-19 16:07

scores_new = {'学生1':,'学生2':,'学生3':,
            '学生4':,'学生5':,'学生6':}


scores_Chinese = dict()
scores_Maths = dict()

for k,v in scores_new.items():
    print(k,v)
    scores_Chinese.setdefault(k, v)
    scores_Maths.setdefault(k, v)


print('语文平均分:', sum(scores_Chinese.values()) / len(scores_Chinese))
print('数学平均分:', sum(scores_Maths.values()) / len(scores_Maths))
页: [1] 2
查看完整版本: python字典问题