zoukankan      html  css  js  c++  java
  • 函数匿名

    有名函数

    我们之前定的函数都是有名函数,他是基于函数名使用.

    def func():
        print('from func')
    
    
    func()
    func()
    func()
    print(func)
    

    匿名函数

    匿名函数没有绑定名字,使用一次即被收回,加括号即可运行,匿名需要关键字lambda

    f = lambda x: x+1
    res = f(1)
    print(res)
    

    与内置函数连用

    匿名函数一般不单独使用,和 filter()/map()/sorted()/列表的sort()内置方法联用

    salary_dict = {
        'nick': 3000,
        'jason': 100000,
        'tank': 5000,
        'sean': 2000
    }
    salary_list = list(salary_dict.items())
    print(salary_list)  # [('nick', 3000), ('jason', 100000), ('tank', 5000), ('sean', 2000)]
    
    
    def func(i):  # i = ('sean', 2000), ('nick', 3000),('tank', 5000),('jason', 100000)
        return i[1]  # 2000,3000,5000,100000
    
    
    salary_list.sort(key=lambda i: i[1])  # 内置方法是对原值排序
    # # 按照func的规则取出一堆元素2000,3000,5000,100000
    # # 然后按照取出的元素排序
    print(salary_list)
    
    new_salary_list = sorted(salary_list, key=lambda i: i[1], reverse=True)  # 重新创建一个新的列表进行排序
    print(new_salary_list)
    

    [('nick', 3000), ('jason', 100000), ('tank', 5000), ('sean', 2000)]
    [('sean', 2000), ('nick', 3000), ('tank', 5000), ('jason', 100000)]
    [('jason', 100000), ('tank', 5000), ('nick', 3000), ('sean', 2000)

    salary_dict = {
        'nick': 3000,
        'jason': 100000,
        'tank': 5000,
        'sean': 2000
    }
    
    salary_list = list(salary_dict.items())
    print(salary_list)  # [('nick', 3000), ('jason', 100000), ('tank', 5000), ('sean', 2000)]
    
    
    print(max(salary_list,key=lambda i:i[1]))
    print(min(salary_list,key=lambda i:i[1]))
    
    print(list(filter(lambda i: i[1] < 5000, salary_list)))  
    print(list(map(lambda i: i[1] + 2000, salary_list)))
    
    

    [('nick', 3000), ('jason', 100000), ('tank', 5000), ('sean', 2000)]
    ('jason', 100000)
    ('sean', 2000)
    [('nick', 3000), ('sean', 2000)]
    [5000, 102000, 7000, 4000]

  • 相关阅读:
    [fw]PAGE_SIZE & PAGE_SHIFT & _AC()
    Memory layout of x86_64 in Linux
    Compile Linux Kernel on Ubuntu 12.04 LTS (Detailed)
    ret/retn人为改变执行地址
    [fw]LINUX中断描述符初始化
    查看x86主機是否支援64bit in Linux
    Linux.中断处理.入口x86平台entry_32.S
    [fW]中断处理函数数组interrupt[]初始化
    Linux GNU GAS introduction
    洛谷试炼场 3-5数论 3-17 倍增
  • 原文地址:https://www.cnblogs.com/aden668/p/11348326.html
Copyright © 2011-2022 走看看