JAVA网络爬虫
HttpClient

导航

 

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]
    
posted on 2019-08-26 21:04  gmlgxx  阅读(53)  评论(0)    收藏  举报