Python--MutableDict使用范例
MutableDict 使用dict的抽象基类MutableDict,创建自定义dict
from abc import ABC
from enum import Enum
from collections import defaultdict
from collections import MutableMapping
# 统计班级每个成绩等级的人数
class GradeLevel(str, Enum):
    EXCELLENT = 'gte 95'
    GOOD = 'gte 85 and lt 95'
    NORMAL = 'gte 70 lt 85'
    PASS = 'gte 60 and lt 70'
    FAIL = 'lt 60'
class GradeLevelDict(MutableMapping, ABC):
    def __init__(self):
        self.data = defaultdict(int)
    def __getitem__(self, key):
        return self.data[self.grade_level(key)]
    def __setitem__(self, key, value):
        self.data[self.grade_level(key)] = value
    def __delitem__(self, key):
        del self.data[key]
    def __iter__(self):
        return iter(self.data)
    def __len__(self):
        return len(self.data)
    def items(self):
        return sorted(self.data.items(), key=lambda x: list(GradeLevel).index(x[0]))
    def student_count(self):
        return sum(self.data.values())
    @staticmethod
    def grade_level(score):
        if score in list(GradeLevel):
            return score
        if score >= 95:
            return GradeLevel.EXCELLENT
        if 85 <= score < 95:
            return GradeLevel.GOOD
        if 70 <= score < 85:
            return GradeLevel.NORMAL
        if 60 <= score < 70:
            return GradeLevel.PASS
        else:
            return GradeLevel.FAIL
if __name__ == '__main__':
    grade_lv_dic = GradeLevelDict()
    grade_lv_dic[99] += 1
    grade_lv_dic[55] += 1
    print()
请相信自己
当我们迷茫,懒惰,退缩的时候 我们会格外的相信命运 相信一切都是命中注定
而当我们努力拼搏,积极向上时 我们会格外的相信自己
所以命运是什么呢? 它是如果你习惯它 那它就会一直左右你
如果你想挣脱它 那它就成为你的阻碍 可如果你打破了它 那它就是你人生的垫脚石!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号