美文网首页
Python方法配合lambda使用

Python方法配合lambda使用

作者: Donald_32e5 | 来源:发表于2019-04-15 19:29 被阅读0次

    一、lambda

    二、方法的关键字参数

    • 在Python中函数(function)是可以被当做参数传递的
    • 很多内置的方法都用key作为这个关键词参数的键
      示例
    list1 = [1, -32, 43, -3, 2, -3]
    print(sorted(list1, key=lambda x: abs(x)))
    
    # [1, 2, -3, -3, -32, 43]
    
    • 还有很多内置参数都可以使用key来接是一个函数参数:map、max、min······

    三、注意事项

    • 在比较、排序的方法中,key配合lambda使用的时候,他的参数是可迭代对象的元素
    a = {1: {'n1': 22}, 23: {'n2': 4}, 32: {"n3": 93}, 43: {'n4': 54}}
    
    
    def s(x):
        print(x)
        return list(a[x].values())[0]
    
    
    print(min(a, key=s))
    
    
    # --------------
    1
    23
    32
    43
    23
    

    可以看出来,min给的参数是他遍历的结果,如果是多层嵌套结构,要对里面的元素进行排序,可以逐层取出
    lambda写法

    dict_a = {1: {'n1': 22}, 23: {'n2': 4}, 32: {"n3": 93}, 43: {'n4': 54}}
    
    print(min(a, key=lambda x: list(a[x].values())[0]))
    
    print(sorted(a, key=lambda x: list(a[x].values())[0]))
    
    
    # ----------------
    23
    [23, 1, 43, 32]
    

    *这里的列表是dict_a键,根据他第二层的value来排序的
    如果要显示整个字典,使用列表推导式完成:

    print([{i: a[i]} for i in sort_a])
    
    # -------
    [{23: {'n2': 4}}, {1: {'n1': 22}}, {43: {'n4': 54}}, {32: {'n3': 93}}]
    

    相关文章

      网友评论

          本文标题:Python方法配合lambda使用

          本文链接:https://www.haomeiwen.com/subject/mtagiqtx.html