zoukankan      html  css  js  c++  java
  • python内置函数二

    内置函数二
    一、知识要点:
    1、reversed:将一个序列翻转,并返回此翻转序列的迭代器。
    例子:
    l1 = [1,3,4,2,6]
    s1 = 'abcdefg'
    dic = {'name':'alex','age':1000,'hobby':'oldwomen'}
    reversed(l1) #变成一个迭代器
    for i in reversed(l1):
        print(i)
    for i in reversed(s1):
        print(i)
    for i in reversed(dic):  # 字典不行
        print(i)

    2、bytes:将unicode转换成bytes 类型
    a1 = '太白'
    print(a1.encode('utf-8'))
    
    两个都是一样的
    a1 = '太白'
    b1 = bytes(a1,encoding='utf-8')
    print(b1)

    3、repr:返回一个对象的string形式(原形毕露)输入什么就输出什么
    print('alex')
    print(repr("ale,x"))
    print(repr("{'alex':'sb'}"))
    repr() 常用于json pickle序列化模块判断特殊字符串与python字符串的区别。
    4、格式化输出 %r,需要输出引号的时候使用。
    msg = 'alex是%r的人' % ('德高望重')
    print(msg)

    5、sorted:对所有可迭代的对象进行排序操作,默认从小到大。
    l1 = [2,3,5,3,1,9,8,6]
    l1.sort()
    print(l1)  #这个是改变了原来的列表的操作
    print(sorted(l1))  # 这个操作形成了一个新列表
    print(l1)   # 原列表不变
    
    l2 = [(1,1000),(2,18),(4,250),(3,500)]
    print(sorted(l2))   #默认按元组的第一个元素来排序
    
    def func1(x):
        return x[1]
    print(sorted(l2,key=func1,reverse=True)) #对元组的第二个元素进行反向排序

    6、enumerate:枚举,返回一个枚举对象。

    7、zip:函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
    如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。
    拉链方法:将多个iter纵向组成一个个元组。
    l1 = [1,2,3,5,6,7]
    tu1 = ('alex','太白', 'wusir', '女神')
    dic = {'name': '日天', 'age':28, 'hobby': 'tea', 'weight':100}
    zip(l1,tu1,dic)  #这个就变成一个可迭代对象
    for i in zip(l1,tu1,dic):
        print(i)

    8、filter:过滤。作用是对象是迭代器。
    l1 = [i for i in range(10)]
    def func1(x):
        return x % 2 == 0
    print(list(filter(func1,l1)))  #把能被2整除的数留下来

    9、map:会根据提供的函数对指定序列做映射。 循环模式
    例如:输出下面列表的平方
    l1 = [1,2,3,4]
    print([i**2 for i in l1])  #我们可以使用列表推导式做
    def func(x): return x**2
    print(list(map(func,l1)))   #也可以使用map函数做

    重点需要掌握的函数:
    sum reversed min max map sorted filter zip
    其中含有key方法的函数 : min max map sorted filter zip

    二、需要了解的函数
    1、slice:构造一个切片对象,用于列表的切片,相当于设置默认切片规则。
    例如:
    l1 = [i for i in range(10)]
    l2 = l1[:5:2]
    l3 = [i for i in range(10,20)]
    sli_obj = slice(0,5,2)
    print(l3[sli_obj])
    l4 = ['a', 'b', 'c', 'd', 'e']
    print(l4[sli_obj])

    2、str:将数据转化成字符串。

    3、format:与具体数据相关,用于计算各种小数,精算等。
    print(format('test', '<20')) #左对齐
    print(format('test', '>20'))  #右对齐
    print(format('test', '^20'))  #中间对齐,其实我们可以使用center方法!

    4、all:可迭代对象中,全都是True才是True,一般多用于做条件判断
    l1 = [1,'',[1,3],(2,4)]
    print(all(l1))
    5、any:可迭代对象中,有一个True 就是True,一般多用于做条件判断
    print(any([1,0,'',()]))

    6、ord:输入字符找该字符的unicode编码的位置
    print(ord('a'))
    print(ord('中'))

    7、chr:输入位置数字找出其对应的unicode编码字符
    print(chr(97))
    print(chr(20013))

    8、ascii: 如果是ascii码中字符就直接返回该值,不是则返回他在unicode的位置(16进制表示。)
    print(ascii('a'))
    print(ascii('中')) # 'u4e2d' 变成10进制十就是20013

    三、匿名函数
    匿名函数即lambda表达式。
    普通函数中有且只有返回值的函数才可以用匿名函数进行简化,一行函数表示。
    普通函数表达式:
    def func2(x):
        return x**2
    
    lambda表达式:
    func2 = lambda x : x**2
    
    例:函数接收两个参数,求这两个参数的和
    func2 = lambda x,y: x+y
    print(func2(1,2))

    注意:匿名函数一般不会单独使用,多与内置函数结合使用。
    例1:按照元组的第二个值进行排序
    l2 = [(1,1000),(2,18),(4,250),(3,500)]
    print(sorted(l2,key=lambda x:x[1]))
    
    例2:利用内置函数匿名函数将dic按照值进行排序。
    dic={'k1':10,'k2':100,'k3':30}
    print(sorted(dic,key=lambda x:dic[x]))
    print(sorted(dic.items(),key=lambda x:x[1])) #输出一个元组列表
    
    例3:利用内置函数匿名函数 计算列表[1,5,7,4,8]每个数的2倍。
    print(list(map(lambda x:x*2,[1,5,7,4,8])))
    
    例4:利用内置函数匿名函数,将[5,8,11,9,15]中值大于10的留下来。
    print(list(filter(lambda x: x>10,[5,8,11,9,15])))

    lambda的返回值可以使用三元运算来表示,因为我们return后面就可以使用三元运算表示
    func = lambda x: x if x > 2 else x * 2

  • 相关阅读:
    C++入门经典-例4.9-输出不同生命周期的变量值
    C++入门经典-例4.8-同名的全局变量和局部变量
    C++入门经典-例4.7-变量的作用域
    C++入门经典-例4.6-使用重载函数
    C++入门经典-例4.5-利用循环求n的阶乘
    C++入门经典-例4.4-循环嵌套之求n的阶乘
    C++入门经典-例4.3-函数的递归调用之汉诺塔问题
    C++入门经典-例4.2-调用默认参数的函数
    C++入门经典-例4.1-声明、定义和使用函数
    C++入门经典-例3.25-使用循环输出闰年
  • 原文地址:https://www.cnblogs.com/banjh/p/9518394.html
Copyright © 2011-2022 走看看