zoukankan      html  css  js  c++  java
  • python奇技淫巧——max/min函数的用法

    本文以max()为例,对min/max内建函数进行说明

    源码

    def max(*args, key=None): # known special case of max
        """
        max(iterable, *[, default=obj, key=func]) -> value
        max(arg1, arg2, *args, *[, key=func]) -> value
    
        With a single iterable argument, return its biggest item. The
        default keyword-only argument specifies an object to return if
        the provided iterable is empty.
        With two or more arguments, return the largest argument.
        """
        pass
    

    初级技巧

    tmp = max(1,2,4)
    print(tmp)
    
    #可迭代对象
    a = [1, 2, 3, 4, 5, 6]
    tmp = max(a)
    print(tmp)
    

    中级技巧:key属性的使用

    当key参数不为空时,就以key的函数对象为判断的标准。
    如果我们想找出一组数中绝对值最大的数,就可以配合lamda先进行处理,再找出最大值

    a = [-9, -8, 1, 3, -4, 6]
    tmp = max(a, key=lambda x: abs(x))
    print(tmp)
    

    高级技巧:找出字典中值最大的那组数据

    如果有一组商品,其名称和价格都存在一个字典中,可以用下面的方法快速找到价格最贵的那组商品:

    prices = {
        'A':123,
        'B':450.1,
        'C':12,
        'E':444,
    }
    # 在对字典进行数据操作的时候,默认只会处理key,而不是value
    # 先使用zip把字典的keys和values翻转过来,再用max取出值最大的那组数据
    max_prices = max(zip(prices.values(), prices.keys()))
    print(max_prices) # (450.1, 'B')
    

    当字典中的value相同的时候,才会比较key:

    prices = {
        'A': 123,
        'B': 123,
    }
    
    max_prices = max(zip(prices.values(), prices.keys()))
    print(max_prices) # (123, 'B')
    
    min_prices = min(zip(prices.values(), prices.keys()))
    print(min_prices) # (123, 'A')
    
  • 相关阅读:
    我的20130220日 在北京 do{ Web Develop } while(!die)
    关于NVelocity模板引擎初学总结
    C# 23种设计模式汇总
    基于模型的设备故障检测
    图像去噪之光斑去除
    虹膜识别
    封闭曲线拟合
    基于故障树的系统可靠性分析
    图像识别之棋子识别
    时间序列的模式距离
  • 原文地址:https://www.cnblogs.com/whatisfantasy/p/6273913.html
Copyright © 2011-2022 走看看