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

    1. list列表排序

     #### sort排序
     nums = [11,22,332343,4354365,3424,32]
     
     nums.sort()
     print(nums)
    
    
    ### 结果
    [11, 22, 32, 3424, 332343, 4354365]
    
    ######## 逆序 In [
    4]: nums.sort(reverse=True) In [5]: nums Out[5]: [434, 343, 43, 34, 34, 34, 13]
    #####  翻转
    In [6]: nums.reverse()
    
    In [7]: nums
    Out[7]: [13, 34, 34, 34, 43, 343, 434]

    2.字典排序

     infors = [{"name":"alex","age":14},{"name":"jack","age":54}]
     infors.sort(key=lambda x:x["age"])   #按照age排序
     
     print(infors)

        

      把list的元素,单个元素字典,传入到x,即 x:x['name'] 就是    {“name”:“alex”,“age”:43} :alex

    3.lambda应用:

      1)版本1:求11+22

     def test(a,b):
         result = a+b
         return result
     
     num = test(11,22)
     print(num)

       

      2)版本2:

     def test(a,b,func):
         result = func(a,b)
         return result
     
     num = test(11,22,lambda x,y:x+y)
     print(num)

            

       3)版本3:动态语言

     #-*- coding:utf-8 -*-         python2执行
     def test(a,b,func):
         result = func(a,b)
         return result
     
     func_new = input("请输入一个匿名函数:")        #python2 input是函数
     num = test(11,22,func_new)
     print(num)

          

       4)版本4:eval  去掉字符串的 “ ”

     ####  python3 执行
    
     def test(a,b,func):
         result = func(a,b)
         return result
     
     #func_new = input("请输入一个匿名函数:")
     
     func_new = input("请输入一个匿名函数:")
     func_new = eval(input(func_new))    #eval把字符串的“”去掉
     num = test(11,22,func_new)
     print(num)

        

     3.面试题:交换两个变量的值

      1)版本1:空瓶子t

     a = 4
     b = 5
     t = 0
     print("a=%s,b=%s"%(a,b))
     t = a
     a = b
     b = t
     print("a=%s,b=%s"%(a,b))

          

      2)版本2:不用第三个变量

     #### 第2种,不用第三个变量
     a = a+b
     b = a-b
     a = a-b
     print("a=%s,b=%s"%(a,b))

       3)版本3:python独有

    #####  第3种 
    a,b = b,a
    print("a=%s,b=%s"%(a,b))

         

    3.num += num 与 num = num +num 的区别

      1)版本1:a = 100

     ###  不可变类型 数字 字符串  元组
     a = 100
     def test(num):
         num += num
         print(num)
         
     test(a)
     
     print(a)

          

      2)版本2:a = [100]

     #a = 100
     a = [100]         #list列表是可变类型
     def test(num):
         num += num     #  直接在num变量的内存地址修改,然后还是指向 a
         print(num)
     
     test(a)
     
     print(a)  

          ‘’

      3) 版本3: num = num + num

     ###  python中 变量是引用的
     #a = 99
     a = [100]
     def test(num):
         #num += num
         num = num + num   #执行得到结果  [100,100]  然后让 num 再重新指向它
         print(num)
     
     test(a)
     
     print(a)

        

      

  • 相关阅读:
    使用Code First Migrations依据代码更新数据库结构
    Engine Yard增加对Node.js的支持
    CSS3无前缀脚本prefixfree.js及Animatable介绍
    html5客户端本地存储之sessionStorage及storage事件
    cctype,string,vector
    管理朋友信息程序
    三位数的排列组合
    结构体字节对齐
    习题3.13
    OPENCV用户手册之图像处理部分(之一):梯度、边缘与角点(中文翻译)
  • 原文地址:https://www.cnblogs.com/venicid/p/7881311.html
Copyright © 2011-2022 走看看