• 對數據按等級分類


    要求: 一個數n,如果:

      1. n > 9, n為A類

      2. n < 9 and n > 8, n為B類

      3. n < 8 and n > 7, n為C類

      4. n <7 and n > 6, n為D類

      4. n < 6, n為E類

    使用if-else結構必然是能夠完成要求的,但是顯得不夠優雅,不妨嘗試一下如下方法:

    1. 使用zip打包數據

    def grade(score):
        grades = list(zip("ABCD", (9, 8, 7, 6)))
        return next((grade for grade, limit in grades if score >= limit), "E")
    
    
    print([grade(9), grade(5), grade(7)])

    輸出結果:

    ['A', 'E', 'C']

    解釋:

      使用zip()函數對數據和類型打包為元組對,然後把元組對打包為一個列表,如果查看grades裡面的內容就會使如下:

    [('A', 9), ('B', 8), ('C', 7), ('D', 6)]

      這時候去通過數值去判斷對應的類型,如果不在這中間,說明是比6還要小的,則為E類.在這個地方使用了列表解析,我在前面的文章中對此有過比較詳細的說明,如果不懂,可以去看一下: 列表解析,集合解析,字典解析,

    2. 使用字典包裝數據:

    grades = {"A": 9, "B": 8, "C": 7, "D": 6}
    
    def convert_grade(src):
        for ltrgrd, numgrd in grades.items():
            if src >= numgrd:
                return ltrgrd
        return "E"
    
    
    print(convert_grade(5))

    這個代碼非常簡單,就不做多餘的說明.

  • 相关阅读:
    大学随笔
    TMS320C54X系列DSP上FFT运算的实现(转)
    python第一天学习笔记以及心得
    Struts2学习笔记
    C#实现eval 进行四则运算(有码)
    sql 将字符串转换为表
    XML
    图形用户界面
    java io
    java集合
  • 原文地址:https://www.cnblogs.com/ltozvxe/p/12868476.html
Copyright © 2020-2023  润新知