• [转]Python3之max key参数学习记录


    Python3之max key参数学习记录

    转自https://www.cnblogs.com/zhangwei22/p/9892422.html

    今天用Python写脚本,想要实现这样的功能:对于给定的字典,返回其中Value最大值对应的Key。

    搜索后找到了解决方法,同时也学到了max key参数的作用。

    例1,

    1
    2
    testlist = [9.210-20.3-7.09.99920.111]
    print(max(testlist, key=abs))  #返回 -20.3

    获取testlist中绝对值最大的元素。

    key关键字的作用是,对每个testlist元素先使用key指定的function来处理,然后再比较、返回预期的元素。

    key参数的值也可以使用自定义函数。

    例2,

    1
    2
    3
    4
    def func(n):
        return abs(n)<br>
    testlist = [9.210-20.3-7.09.99920.111]
    print(max(testlist, key=func))  #结果与例1一致 

    该func是自定义的函数。

    对于简单的方法,一般使用lambda函数。

    例3,

    1
    2
    testlist = [9.210-20.3-7.09.99920.111]
    print(max(testlist, key=lambda x: abs(x)))  #结果与例1、例2一致

    使用lambda函数作为key的参数。

    例4,

    1
    2
    3
    probabilities_dict = {'Sunny'0.30'Cloudy'0.35'Windy'0.15'Rainy'0.20}
    print(max(probabilities_dict, key=lambda x: probabilities_dict[x]))  #返回 Cloudy
    print(max(probabilities_dict, key=probabilities_dict.get))  #返回 Cloudy  

    这里,对于probabilities_dict字典的每一个元素(即字典的Key),使用key参数指定的方法进行处理,然后再比较、返回预期的字典Key。

    下面的这句依次打印字典的Key、dict.get(Key)的值:

    1
    2
    for key in probabilities_dict:
        print(key, probabilities_dict.get(key), sep=': ', end=', ')  #返回 Sunny: 0.3, Cloudy: 0.35, Windy: 0.15, Rainy: 0.2,

      

     

    巨人的肩膀:

    https://www.cnblogs.com/whatisfantasy/p/6273913.html

    https://stackoverflow.com/questions/18296755/python-max-function-using-key-and-lambda-expression

  • 相关阅读:
    033 流程控制之if判断
    032 基本运算符
    031 格式化输出的三种方式
    030 Python与用户交互
    029 解压缩
    028 布尔类型
    027 字典类型
    026 列表类型
    025 字符串类型
    023 数据类型基础
  • 原文地址:https://www.cnblogs.com/peanutk/p/11426223.html
Copyright © 2020-2023  润新知