我想使用 python 将数组中的所有数字更改为 ABCD 评分系统

I want to change all of the number in my array into ABCD scoring system using python

我想将数组中的所有数字更改为 ABCD 评分系统。我有 100 X 1 的分数数组,我的数组放在 total_score 下。我尝试使用

def grade(score):
    if 91 <= score <= 100:
        return 'A'
    if 81 <= score <= 90.99:
        return 'B'
    if 71 <= score <= 80.99:
        return'C'
    if 61 <= score <= 70.99:
        return'D'
    else:
        return'E'
grade = float(total_score)

我也试过使用


def determine_grade(scores, breakpoints=[50, 60, 70, 80, 90], grades='FEDCBA'):
    i = bisect.bisect(breakpoints, scores)
    return grades[i]
    [grade(score) for score in [total_score]]

两者都不起作用。也有一些建议,但似乎 none 的建议与 pandas array

一起工作

假设您的总分数组如下所示:

total_scores = ['99', '100', '52', '69', '33', '77']

您的评分函数:

def grade(score):
    if 91 <= score <= 100:
        return 'A'
    if 81 <= score <= 90.99:
        return 'B'
    if 71 <= score <= 80.99:
        return'C'
    if 61 <= score <= 70.99:
        return'D'
    else:
        return'E'

那么你所要做的就是:

grading_score = [grade(float(score)) for score in total_scores]  # returns ['A', 'A', 'E', 'D', 'E', 'C'] 

请注意,在调用 'grade' 函数之前,我将数组中的字符串转换为浮点数。

这里是使用list comprehensions

的官方文档