zoukankan      html  css  js  c++  java
  • DAY14 内置函数-2,匿名函数

    内置函数-2

      数据结构相关:

        str():把数据类型转换为字符串类型。

        list():将一个可迭代对象转换为列表(如果是字典的话,将字典的键转换为列表)

    #把字符串转换为列表,会把字符串的每一个元素当成列表的元素
    s1 = 'djfkdjf'
    print(list(s1))
    >>>
    ['d', 'j', 'f', 'k', 'd', 'j', 'f']
    
    #把元组转换为列表
    tu1 = (1,2,3,4)
    print(list(tu1))
    >>>
    [1, 2, 3, 4]
    
    #把字典转换为列表,会把字典的键转换为列表
    dic1 = {'name':'he','age':23,'sex':'male'}
    print(list(dic1))
    >>>
    ['name', 'age', 'sex']
    
    #把集合转换为列表
    set1 = {1,2,3,4}
    print(list(set1))
    >>>
    [1, 2, 3, 4]

        tuple():将一个可迭代对象转换为元组(如果是字典的话,将字典的键转换为元组)

    #把字符串变成元组,同列表一样的效果
    s1 = 'jkjdk'
    print(tuple(s1))
    >>>
    ('j', 'k', 'j', 'd', 'k')
    
    #把列表转换为元组
    l1 = [1,2,3,4]
    print(tuple(l1))
    >>>
    (1, 2, 3, 4)
    
    #把字典转化为元组,会把字典的键变成元组的元素
    dic1 = {'name':'he','age':23,'sex':'male'}
    print(tuple(dic1))
    >>>
    ('name', 'age', 'sex')
    
    #把集合转换为元组
    set1 = {1,2,3,4}
    print(tuple(set1))
    >>>
    (1, 2, 3, 4)
    

        dict(): 创建一个字典。

    #用dict()方法创建一个字典
    dic1 = dict(name='he',age=23,sex='male')
    print(dic1)
    >>>
    {'name': 'he', 'age': 23, 'sex': 'male'}
    

         set():创建一个集合。

    #用set()方法创建一个集合
    set1 = set({1,2,3,4})
    print(set1)
    >>>
    {1, 2, 3, 4}
    

       跟字符相关:

         ord():输入字符,返回unicode对应的编码位置。

    print(ord('a'))
    >>>
    97
    print(ord('b'))
    >>>
    98
    print(ord('何'))           #能够返回中文,所以说明是unicode编码,而非ascii
    >>>
    20309
    

        chr():输入unicode对应的编码位置,返回相应的字符。

    print(chr(20309))
    >>>
    何
    print(chr(98))
    >>>
    b
    

        ascii():测试字符是否在ascii中,u表示不在。

    print(ascii('a'))
    >>>
    'a'
    print(ascii('何'))
    >>>
    'u4f55'
    

       repr():返回一个对象的string形式

    print('alex')
    print(repr('alex'))
    print(repr('{“name":"he"}'))
    >>>
    alex
    'alex'
    '{“name":"he"}'
    

      bytes():用于字符串转为bytes类型

    s = '中国'
    b = bytes(s,encoding='utf-8')
    print(b)
    >>>
    b'xe4xb8xadxe5x9bxbd'

       可迭代类型相关:

        all():检测可迭代对象中的元素,如果全是True,才返回True。

       any():检测可迭代对象中的元素,如果有一个True,则返回True。

    l1 = [1,2,3,4,'']        #all()全部为True,才返回True。""空字符串对应的布尔值为False
    print(all(l1))
    >>>
    False
    
    
    l1 = [True,1,2,0,False]
    print(any(l1))
    >>>
    True
    

       zip():俗成拉链方法,传入多个可迭代对象,把对应的元素打包成一个元组,并返回有这些元组的类表。

    l1 = [1,2,3]
    l2 = ['wusir','alex','taibai']
    dic1 = {'name':'he','age':23,'sex':'male','city':'gz'}
    >>>
    [(1, 'wusir', 'name'), (2, 'alex', 'age'), (3, 'taibai', 'sex')]
    
    谨记:以最短的可迭代对象为主,超过的方法无法合并。
    

          reversed():翻转可迭代对象的元素,变成迭代器。

    l1 = [11,22,33,44]
    l2 = reversed(l1)
    for i in l2:
        print(i)
    >>>
    44
    33
    22
    11
    

        sorted(): 对可迭代对象进行排序,返回的是一个新列表,不影响原列表。因为底层是C写的,所以效率很高。

    #一。复习之前列表的sort()方法:
    l1 = [1,2,3,6,5,8]
    l1.sort()
    print(l1)                #利用列表的sort()方法排序,会影响原列表
    >>>
    [1, 2, 3, 5, 6, 8]
    
    
    #二。使用内置函数sorted()排序
    l1 = [1,2,3,6,5,8]
    print(sorted(l1))
    >>>
    [1, 2, 3, 5, 6, 8]
    print(l1)
    >>>                               #利用sorted()排序,返回的是一个新列表,不影响原列表。
    [1, 2, 3, 6, 5, 8]
    
    
    #三。sorted()方法可以接受key,自定义排序的规则
    l1 = ['dfjkfj','dkfjdjf','dkfkdfjkdfjkdjf','dkjfkdfjfdfdkfdkfj']
    
    def lstlen(x):
        return len(x)
    
    print(sorted(l1,key=lstlen,reverse=True))
    >>>
    ['dkjfkdfjfdfdkfdkfj', 'dkfkdfjkdfjkdjf', 'dkfjdjf', 'dfjkfj']
    

       map():把一个可迭代对象中的每一个元素,放到函数中执行,返回一个迭代器。类似于列表推导式的循环模式。

    def func1(x):
        return x**2
    l1 = [0,1,2,3,4]
    print(list(map(func1,l1)))
    >>>
    [0,1,4,9,16]
    
    print([i**2 for i in range(0,5)])   #使用列表推导式的循环模式亦可完成
    >>>
    [0, 1, 4, 9, 16]
    

      filter():把一个可迭代对象的每一个元素,放到函数中执行,满足条件的放入filter迭代器中,不满足的过滤掉;类似列表推导式的筛选莫斯。

    def fun1(x):
        return x % 2 ==0
    
    for i in filter(fun1,[1,2,3,4,5,6]):
        print(i)
    >>>
    2
    4
    6
    

    匿名函数

      匿名函数,以lambda关键字定义的函数,为了满足用一句话解决功能简单的函数。

      格式:

         lambda  形参[..] :  返回值

      使用方法:

    #一.把lambda函数赋值给一个变量
    plus_1 = lambda x : x+1
    res = plus_1(1)
    print(res)
    >>>
    2
    
    #例子二:
    #普通函数
    def all_upp(s):
        '''把字符串全部转为大写'''
        return s.strip().upper()
    print(all_upp('python'))
    
    #匿名函数
    all_upp = lambda s:s.strip().upper()
    print(all_upp('python'))
    
    
    #lambda的推荐使用
    #如果有一些内置方法,带key参数,即接受函数为参数的,例如:min(),max(),sorted(),map(),filter()等
    #那么lambda就可以作为其参数
    
    my_list = [1,2,3,4,5,6,7]
    def odd(*args):
        '''找到列表里面的所有奇数,并返回一个新列表'''
        new_list = []
        for i in args:
            if i % 2 ==1:
                new_list.append(i)
        return new_list
    print(odd(*my_list))
    

      

      

  • 相关阅读:
    docker 创建本地镜像服务器
    14.3.5.2 Deadlock Detection and Rollback 死锁检测和回滚:
    14.3.5.1 An InnoDB Deadlock Example
    14.3.4 Phantom Rows 幻影行
    14.3.4 Phantom Rows 幻影行
    14.3.3 Locks Set by Different SQL Statements in InnoDB 不同的SQL语句在InnoDB里的锁设置
    Mysql rr和rc隔离
    RR模式下的事务隔离
    RR模式下的事务隔离
    Maven学习总结(6)——Maven与Eclipse整合
  • 原文地址:https://www.cnblogs.com/hebbhao/p/9518037.html
Copyright © 2011-2022 走看看