考核标准认为分数低于60分,成绩结果为不及格;大于等于60分且小于70分为及格;大于等于70分且小于80分为中等;大于等于80分且小于90分为良好;大于等于90分为优秀;等于100分是满分。

img


要求:对给定的数值列表[82,70,90,0,100,45],根据上述分数等级划分规格,将上述列表转化成字典。例82:“良好",70:"中等",90:"优秀,0:“不及格",100:“满分”,45:“不及格”输出字典的所有键值对。(提示:使用自定义函数

参考学习:

def score_class(score):
    if score < 60:
        return "不及格"
    elif score >= 60 and score < 70:
        return "及格"
    elif score >= 70 and score < 80:
        return "中等"
    elif score >= 80 and score < 90:
        return "良好"
    elif score >= 90 and score <= 100:
        return "优秀"
    elif score == 100:
        return "满分"
  
score_list = [82, 70, 90, 0, 100,45]
score_dict = {}

for score in score_list:
    score_dict[score] = score_class(score)

print(score_dict)


不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/1057923
  • 除此之外, 这篇博客: 自然语言处理大作业-三种中文分词方法的性能对比与评分(附带完整源码,超详细报告文档,展示文档)中的 特殊字符处理 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    分析五个模型的分词结果,我们发现不管是基于词典的最大匹配法,基于统计的隐式马尔可夫模型,还是二者混合的 Unigram 模型,均无法有效的将时间,数字,人名和地名准确的切分处理。其原因在于最大匹配是基于字典的切分方式,当遇到字典中未出现的词语时,最大匹配法无法正确的切分。

    解决方法:因为数字和日期的出现规律较为单一,所以采用人工规定义规则的方式,增加了基于规则的数字,日期匹配算法。将所有的数字单独分做一个词。如果数字末尾有年、月、日,则和其合并为一个词。

    缺点是不能覆盖所有的情况,以文字出现的日期和数字情况多样,难以用规则描述。如:上千、一两等等。

    通过实验,我们取得了 3%的 F1 值提升。 具体结果如下表所示。

    表3 加入日期数字后最大匹配法结果展示

    模型PrecisionRecallF1速度(字/s)
    前向0.9070.9310.9199300+
    后向0.9090.9330.92117000+
    双向0.9100.9330.9215700+

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
grade = ["不及格"]*6 + ["及格","中等","良好","优秀","满分"]
scores = [82, 70, 90, 0, 100, 45]
res = {i:grade[i//10] for i in scores}
print(res)

自定义函数实现分数等级判断。:


def toDict(scores):
    dict = {}
    for score in scores:
        if score < 60:
            dict[score] = '不及格'
        elif score < 70:
            dict[score] = '及格'
        elif score < 80:
            dict[score] = '中等'
        elif score < 90:
            dict[score] = '良好'
        elif score < 100:
            dict[score] = '优秀'
        else:
            dict[score] = '满分'
    return  dict


scores = [82,70,90,0,100,45]
dict = toDict(scores)
for k,v in dict.items():
    print(k,v)

运行结果:

img