python匿名函数的相关操作

python匿名函数的相关操

  • 匿名函数

    #nums = [124124,3521,124,62,3457,234,23,6357,134,436] 
    #nums.sort()  #列表从小到大排序
    #print(nums)
    #nums.sort(reverse=True) #列表从大到小排序
    #print(nums)
    f1 = lambda x,y:x+y # lambda 返回函数所以必须用变量名接收
    print(f1(3,4)) #这里是调用 f1这个函数 把 3,4 传递给x,y
    
    # 运行结果
    7
    
  • 匿名函数的应用

    infors = [{'name':'laowang','age':18},{'name':'banzhang','age':20},{'name':'tuomasi','age':17}]
    # 这里的x 取的是列表里的元素字典 x['name'] 是字典里的name键的值
    # 这里的sort默认是把列表每个元素进行比较
    # 这里的sort吧列表的元素传递给了x
    infors.sort(key=lambda x:x['name'])
    print(infors)
    
    # 运行结果
    [{'name': 'banzhang', 'age': 20}, {'name': 'laowang', 'age': 18}, {'name': 'tuomasi', 'age': 17}]
    
  • 匿名函数当做实参

    def test(a,b,func):
        result = func(a,b)#func 就是在调用lambda匿名函数  lambad匿名函数 自带return
        return result
    
    num = test(11,22,lambda x,y:x+y) # 把 11,22,lambda 这三个的引用传递给 a,b,func
    print(num)
    
    # 运行结果
    33
    
  • Python2里动态录入函数

    #coding=utf-8
    def test(a,b,func):
        result = func(a,b)
        return result
    
    func_new = input("请输入一个匿名函数:")
    num = test(11,22,func_new)
    print(num)
    
    # 运行结果
    请输入一个匿名函数:lambda x,y:x+y
    33
    
  • Python3里动态录入函数

    def test(a,b,func):
        result = func(a,b)
        return result
    
    # eval回到被转换前的类型
    # 列你输入的 "lambda x,y:x+y" 就换变成 lambda x,y:x+y
    func_new = eval(input("请输入一个匿名函数:"))  # eval按照你输入的执行列你输入的5+6这里就会显示11, 要是没有eval就会显示5+6的字符串
    num = test(11,22,func_new)
    print(num)
    
    # 运行结果
    请输入一个匿名函数:lambda x,y:x+y
    33
    
  • 交换两个变量值的方式

    a = 10
    b = 20
    '''
    第一种
    c = 0
    c = a
    a = b
    b = c
    '''
    '''
    第二种
    30=10+20
    a = a + b
    
    10=30-20
    b = a - b
    
    20= 30-10
    a = a - b
    '''
    
    a,b = b,a #只能python里使用 这是先算右边 不用考虑左边  直接吧右边的值赋值过去
    print(a)
    print(b)
    
    # 运行结果
    20
    10
    
  • 知识点补充

    # a = 100 因为数字是不可变类型
    
    a = [100] #全局变量a列表会变 因为列表是可变类型
    print(id(a))
    
    def test(num):
        #传递数值,所以num指向了200
        num+=num#num指向的地址不变修改里面的内容   python里 num+=num 不等价于 num=num+num
        # num=num+num #num指向了新对象的地址
        print(id(num))
        print(num)
    
    test(a)
    print(a)
    
    # 运行结果
    4322281864
    4322281864
    [100, 100]
    [100, 100]
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只因为你温柔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值