zoukankan      html  css  js  c++  java
  • python基础学习Day14 内置函数 匿名函数

    一、内置函数里几个高频重要函数

    (1)minmax函数的用法    

    以min函数的为例:

    min:返回可迭代对象的最小值(可加key,key为函数名,通过函数的规则,返回最小值)。
    l1 =[(1,1000),(2,18),(3,500)]
    def func1(x):
        return x[1]
    print(min(l1,key=func1))

    结果为:(2,18)

    解释:

    (1)他会将iterable里面的每个元素自动取出来。

    (2)他会将你的返回值作为比较大小的具体条件。

    (3)它会将遍历的元素返回回来

    (2)repr:返回一个对象的string形式(原形毕露)

    print('alex')        # alex
    print(repr('alex'))         # 'alex'
    print(repr("{'alex':'sb'}"))        # "{'alex':'sb'}"
    print(('alex是%r的人'%('德高望重')))   # alex是'德高望重'的人

    注意:repr() json pickle 序列化模块与特殊字符串的区别

    (3)sorted 对可迭代对象排序

    1.1列表

    l1 = [1,5,4,6,3]
    l1.sort()       # 原列表发生改变
    # print(sorted(l1)) # 原列表不变
    print(l1)

    1.2元素为元组的列表:以该元组第一个元素排序

    l2 = [(1,100),(2,18),(4,250),(3,50)]
    print(sorted(l2))  # [(1, 100), (2, 18), (3, 50), (4, 250)]  

    1.3 元素为元组的列表:以该元组第二个元素排序

    def func(x):
        return x[1]
    print(sorted(l2,key=func,reverse= False)) # [(2, 18), (3, 50), (1, 100), (4, 250)]

    1.4字典 :利用内置函数匿名函数将dic按照值进行排序。

    dic={'k1':10,'k2':100,'k3':30}
    print(sorted(dic.items(),key=lambda x:x[1]))  # x为元组    
    
    
    print(sorted(dic,key=lambda x:dic[x]))  #  x为键

    结果为:

    [('k1', 10), ('k3', 30), ('k2', 100)]

      ['k1', 'k3', 'k2']

     

    (3)zip  拉链方法

    l1 = [1,2,3]
    tuple1 = ('alex','太白','wusir','女神')
    dic1 = {'name':'日天','age':28,'hobby':'tea'}
    print(zip(l1,tuple1,dic1)) # <zip object at 0x000002EC0EBD0A48>
    for i in zip(l1,tuple1,dic1):
        print(i)
    
    结果为:
    (1, 'alex', 'name')
    (2, '太白', 'age')
    (3, 'wusir', 'hobby')

    注意:如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同

    (4)filter   过滤   迭代器

    l1 = [i for i in range(10)]
    def func1(x):
        return x % 2 == 0
    print(list(filter(func1,l1)))  # [0, 2, 4, 6, 8]

    再举例子 :利用内置函数匿名函数,将值大于10的留下来。

    l2 =[5,8,11,9,15]
    print(list(filter(lambda x:x > 10,[5,8,11,9,15])))  # 过滤   留下符合条件的值

    (5)map:会根据提供的函数对指定序列做映射。循环模式

    l2 = [1,5,7,4,8]
    利用内置函数匿名函数 计算列表的每个数的2倍。
    print(list(map(lambda x:x **2,[1,5,7,4,8] )))  # 映射  得出结果
    
    print(map(lambda x:x *2,[1,5,7,4,8] )) # 迭代器
    
    结果为:
    [1, 25, 49, 16, 64]
    
    <map object at 0x0000021A000D3DD8>

    (6)sum 求和,可以设初始值

    sum(iterable(可迭代对象),start-num(初始值))

    print(sum([1,2,3,4,5,6],100))
    
    结果为:
    121

    (7)print() 的用法

    def func1(*args,**kwargs):
        print(*args)  # 打散    1 2 3 4
        print(args)   # 元组     (1, 2, 3, 4)
        print(kwargs)  # 字典,不能打散    {'name': 'alex', 'age': '100'}
    func1(1,2,3,4,name = 'alex',age = '100')
    
    print(1,2,3,sep='|')  # 1|2|3
    print(1,end=' ') 
    print(222)      # 1 222

    (8)reversed:将一个序列翻转,并返回此翻转序列的迭代器

    l1 = [1,3,4,5,8]
    s1 = 'abcdef'
    print(reversed(l1))  # 迭代器
    
    for i in reversed(l1):
        print(i)
    
    for i in reversed(s1):
        print(i)

    二、匿名函数

    条件:普通函数 有且只有返回值的函数才可以用匿名函数进行简化,一行函数。
    匿名函数 lambda表达式
    func2 = lambda x:x*2
    print(func2(6))
    
    结果为:
    12
  • 相关阅读:
    C# Using MySQL
    C++ Asynchronous IO on Windows
    C++ Bind adapter usage
    C# Entity Framework with MSSQL, MYSQL
    Read a file into array for C++/C#
    上下移动 04.16
    盒子模型001基础
    JavaScript&JQ 001_五角星评分
    jQuery EasyUI tree的 使用
    自定义实现URL重写 04.18
  • 原文地址:https://www.cnblogs.com/youhongliang/p/9518467.html
Copyright © 2011-2022 走看看