zoukankan      html  css  js  c++  java
  • 015_内置函数2

    1,数据类型:int bool ...
       数据结构:dict tuple list set str

    2,reversed(),reverse()  反转

      2.1,#reverse()   反转,在原表反转,即修改原表

    lis = [1,2,3,4,5]
    lis.reverse()
    print(lis)
    

      2.2,#reversed()    也是反转,但是不改变原表且返回一个迭代器

    lis = [1,2,3,4,5]
    lis2 = reversed(lis)
    print(lis2)
    

    3,slice()切片函数

    lis = (1,2,3,4,5)
    sli = slice(1,5,2)  # 返回一个对应的切片对象
    print(lis[sli])	# 使用切片对象
    # 等同于
    print(lis[1:5:2])

    4,format

        见转载文章:内置函数——format

    5,bytes 转换成bytes类型(将对应的字节转换成对应的16进制一个字节对应一个十六进制

    • 网络编程,网络上只能传二进制
    • 照片和视频也是以二进制存储
    • html网页爬到的也是编码
    print(bytes('你好',encoding='gbk'))    #将gbk编码的‘你好‘,转换成对应的16进制,
    print(bytes('你好',encoding='utf-8'))  #将utf-8编码的‘你好‘,转换成对应的16进制,
    

    6,bytearray(s,encoding='utf-8')  是一个bytes类型的一个数组

    print(bytearray('你好',encoding='utf-8'))
    

      详细讲解:https://www.jianshu.com/p/af0f7efe2709

    7,字符转换

    • ord  字符按照unicode转数字
    print(ord('a')) #>>>97
    
    • chr  数字按照unicode转字符
    print(chr(97))	#>>>a
    
    • ascii 只要是ascii码中的内容就打印出来,不是就转换成u

    8,repr  用于%r格式化输出,输出原型毕露

    name = 'egg'
    print('你好%r',%name)	#>>>你好'egg'
    print(repr('1'))  #>>>'1'
    print(repr(1))    #>>>1
    

    9,all()   any()  都接收可迭代的

      9.1,all()  判断是否有bool值为False的值,如果有就是False(判断是否全为真)

    print(all(['a','',123])) #>>>False
    print(all(['a',123]))	#>>>True
    

      9.2,any()  判断是否有bool值为True的值,如果有就是True(判断是否不全为假)

    print(any(['',True,0,[]]))  #>>>True
    

    10,zip()  拉链函数

    lis = [1,2,3]
    lis2 = ['a','b','c']
    print(zip(lis,lis2))  #是个迭代器
    for i in zip(lis,lis2):
        print(i)
    #结果:
    (1,'a')
    (2,'b')
    (3,'c')
    

      类似拉链方法,长度不一样时依次拉,多出来的不拉。

      可以写多个集合

    lis = [1,2,3]
    lis2 = ['a','b','c']
    tu = ('*','**',[1,2])
    dic = {'k1':1,'k2':2}
    print(zip(lis,lis2,tu,dic))  #是个迭代器
    for i in zip(lis,lis2):
        print(i)
    #结果:
    (1,'a','*','k1')
    (2,'b','**','k2')
    

    11,filter()   map()

      11.1,filter(函数名,可遍历表)

        将表中的元素依次通过前面的函数进行筛选,如果满足条件,函数返回True,则将该元素提出。

        举例:要从一个list [1, 4, 6, 7, 9, 12, 17]中去除偶数,提取出奇数,首先,要编写一个判断奇数的函数;然后,利用filter()过滤掉偶数

    def is_odd(x):
        return x % 2 == 1
    
    lis = [1, 4, 6, 7, 9, 12, 17]
     
    ret = filter(is_odd, lis)
    print(ret)		#返回一个迭代器
     
    print(lis)		#不改变原列表
    print(list(ret)) #将满足条件(结果为True)的元素提出。
    
    #for i in ret:    # 迭代器只能用一次。
    #    print(i)
    #还可写为
    ret2 = [i for i in [1, 4, 6, 7, 9, 12, 17] if i % 2 == 1]
    print(ret2)
    lis = [1, 4, 6, 7, 9, 12, 17]
    ret3 = filter(lambda x:x%2 == 1,lis)
    print(list(ret3))
    ret3 = filter(lambda x:True if x%2 == 1 else False,lis)
    print(list(ret3))

       举例:删除 None 或者空字符串:

    def is_not_empty(s):
        return s and len(s.strip()) > 0
    
    lis = list(filter(is_not_empty, ['test', None, '', 'str', '  ', 'END']))
    
    print(lis)
    

       11.2,map(函数名,可遍历表)将表中的元素依次传入前面的函数中并执行函数,将函数执行后的结果提出。

    ret = map(abs,[1,-4,6,-8])	#绝对值排序
    print(ret)
    for i in ret:
    	print(i)

    12,sort()  sorted()   排序

      15.1,sort()在原列表的基础上进行排序,原列表改变

    lis = [1,-4,6,5,-10]
    lis.sort(key = abs) #按绝对值排序
    print(lis)
    

      12.2,sorted(iterable, key=None, reverse=False)   # 再生成一个表,不改变原表,占内存

        参数说明:
          iterable:是可迭代类型;
          key:传入一个函数名,函数的参数是可迭代类型中的每一项,根据函数的返回值大小排序;
          reverse:排序规则. reverse = True  降序 或者 reverse = False 升序,有默认值。
          返回值:有序列表

    l1 = [1,3,5,-2,-4,-6]
    l2 = sorted(l1,key=abs)
    print(l1)
    print(l2)
    

     

  • 相关阅读:
    localStorage、sessionStorage详解,以及storage事件使用
    企业和开发人员究竟该如何适应web标准?
    平面设计常用制作尺寸
    git命令
    TCP/IP、Http、Socket的区别
    canvas
    《千克》
    《小数的加法》
    fiddler设置代理
    《分数的基本性质》
  • 原文地址:https://www.cnblogs.com/eternity-twinkle/p/10516137.html
Copyright © 2011-2022 走看看