美文网首页
内置函数

内置函数

作者: 你怎么还在吃 | 来源:发表于2020-05-18 14:40 被阅读0次

    python解释器自带的

    # range()函数
    # 获取range函数返回的数字序列的方法
      res = range(10,0,-2)#10,8,6,4,2
      res = range(4,10,2)#4,6,8
      res = range(6,10)#6,7,8,9
      res = range(-10)#[ ]
      res = range(10)#0,1,2,3,4,5,6,7,8,9
      ​
      # 1.转为list列表数据
      print(list(res))
      ​
      # 2.通过 for循环 进行遍历
      for i in res:
         print(i)
      ​
      # 3.转为迭代器,使用next函数调用 ​
      res = iter(res)
      print(next(res))
    
      var1 = '1234'
      var2 = ['a','b','c']
      var3 = ('A','B','C','D')
      # 调用zip函数,组成新的元组迭代器
      res = zip(var1,var2,var3)
      print(res,type(res))#<zip object at 0x10d30b848> <class 'zip'>
      ​
      # 提取迭代器数据的方法, next(),list(),for i in ...
    
      ​
      # zip() 与 * 运算符相结合可以用来拆解一个列表:
      x = [1, 2, 3]
      y = [4, 5, 6]
      zipped = zip(x, y)
      print(list(zipped))#[(1, 4), (2, 5), (3, 6)]
      print(zipped) # 迭代器对象
      ​
      # 组合好的多个元组数据
      print(*zip(x, y))#(1,4)(2,5)(3,6)
      ​
      x2, y2 = zip(*zip(x, y))
      print(x2,y2)# (1, 2, 3) (4, 5, 6)
     
    
      #获取一个数的绝对值
      print(abs(-99.99))
      ​
      #求和——从 start 开始自左向右对 iterable 中的项求和并返回总计值
      print(sum([1,2,3]))
      ​
      #获取——最大值
      print(max([1,2,3]))
      print(max(99,12,45))
      ​
      #获取——最小值
      print(min([2,1,6,-9]))
      print(min(6,7,1,0,-2))
      ​
      #幂运算——返回 x 的 y 次幂
      print(pow(2,3))#2**3=8
      ​
      #四舍五入
      r = round(3.1415926)#3
      # 小数点保留几位
      r = round(3.1415926,2) #3.14
      #奇进偶退
      r = round(4.5) # 1.5 = 2 2.5=2,3.5=4,4.5=4
      print(r)
     
      bin() #将数值类型转为二进制
      print(bin(123)) # 0b1111011
      ​
      int() #将二进制转为整型
      print(int(0b1111011)) #123
      ​
      oct() #转为八进制数 01234567
      print(oct(123)) # 0o173
      ​
      hex() #转为十六进制数,用于颜色 0123456789abcdef
      print(hex(123)) # 0x7b
      print(int(0x7b))#123
      ​
      # 将字符转为 ascii
      r = ord('a')
      print(r)
      ​
      # 将ascii转为字符
      r = chr(65)
      print(r)</pre>
    
      arr = [3,7,1,-9,20,10]
      # 默认按照从小到大的方式进行排序
      res1 = sorted(arr)  # [-9, 1, 3, 7, 10, 20]
      print(res1)#[-9, 1, 3, 7, 10, 20]
      ​
      # 可以按照从大到小的方式进行排序
      res2 = sorted(arr,reverse=True)  # [20, 10, 7, 3, 1, -9]
      print(res2)#[20, 10, 7, 3, 1, -9]
      ​
      # 使用abs这个函数(求绝对值)作为sorted的key关键字参数使用
      res3 = sorted(arr,key=abs)#按照出处理结果排序
      print(res3)#[1, 3, 7, -9, 10, 20]
      ​
      ​
      ​
      #使用自定义函数对数据进行处理
      def func(num):
         #print(num,num % 2)
         return num % 2
      ​
      arr = [3,2,4,6,5,7,9]
      # 在sorted函数中使用自定义函数对数据进行处理
      res = sorted(arr,key=func)
      print(res)
      ​
      ​
      # 优化版
      arr = [3,2,4,6,5,7,9]
      res = sorted(arr,key=lambda x:x%2)
      print(res)
    
      #1.字符串数字的列表转为整型的数字列表
      #['1','2','3','4'] 转为 [1, 2, 3, 4]
      ​
      #普通方法
      varlist = ['1','2','3','4']
      newlist = []
      for i in varlist:
         newlist.append(int(i))
      print(newlist)
      ​
      # 使用map函数处理这个数据
      varlist = ['1','2','3','4']
      res = map(int,varlist)
      print(list(res))
      ​
      ​
      #2.[1, 2, 3, 4] 转为 [1, 4, 9, 16]
      #普通方法
      varlist = [1,2,3,4]
      newlist = []
      for i in varlist:
         j = i ** 2
         newlist.append(j)
    
      print(newlist)
      ​
      # 使用map函数处理这个数据
      varlist = [1,2,3,4]
      def func(x):
       return x **2
      res = map(func,varlist)
      print(list(res))
      ​
      ​
      #优化版
      res = map(lambda x:x**2,varlist)
      print(list(res))
      ​
      ​
      #3.['a','b','c','d'] 转为 [65,66,67,68]
      list1 = ['a','b','c','d']
      res = map(lambda x:ord(x.upper()),list1)
      print(list(res))
      
    
    from functools import reduce
    # 1\. [5,2,1,1] 转为 5211
    #方法一:普通方法
    varlist = [5,2,1,1]
    res = ''
    for i in varlist:
       res += str(i)
    res = int(res)
    print(res,type(res))
    ​
    #方法二
    '''
    5 2 1 1
    5 * 10 + 2 == 52
    52 * 10 + 1 == 521
    521 * 10 + 1 == 5211
    '''
    def myfunc(x,y):
       return x*10+y
    varlist = [5,2,1,1]
    # 调用函数
    res = reduce(myfunc,varlist)
    print(res,type(res))
    ​
    #2.字符串 '456' 转为 int的 456
    # 不能使用int方法进行类型的转换时,如何解决上面的问题?
    ​
    # 定义函数,给定一个字符串的数字,返回一个整型的数字
    def func(s):
       vardict = {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}
       return vardict[s]
    
    print(func('4'))#4
    print(func('5'))#5
    print(func('6'))#6
    ​
    # 1.先使用 map函数,把数字字符串,转为整型的数字
    iter1 = map(func,'456')
    # 调用一下:print(list(iter1))#[4,5,6]
    ​
    # 2. 把数字列表中的值,使用lambda进行二次处理
    iter2 = reduce(lambda x,y:x*10+y,iter1)
    print(iter2)#456
    
    varlist = [1,2,3,4,5,6,7,8,9]
    # 保留所有的偶数,丢弃所有的奇数
    #普通方法
    newlist = []
    for i in varlist:
       if i % 2 == 0:
           newlist.append(i)
    print(newlist)
    ​
    # 使用 filter 进行处理
    #定义一个函数,判断当前这个函数是否为偶数,偶数返回True,奇数返回False
    def func(n):
       if n % 2 == 0:
           return True
       else:
           return False
    ​
    # 调用 过滤器 函数进行处理
    it = filter(func,varlist)
    print(it,list(it))#<filter object at 0x10d2c1400> [2, 4, 6, 8]
    ​
    # 优化版
    it = filter(lambda n:True if n % 2 == 0 else False,varlist)
    print(it,list(it))
    ​
    ​
    

    相关文章

      网友评论

          本文标题:内置函数

          本文链接:https://www.haomeiwen.com/subject/dapuohtx.html