zoukankan      html  css  js  c++  java
  • Python之内置函数

    内置函数

    注:查看详细https://docs.python.org/3/library/functions.html#next

     匿名函数  

    1 def calc(x):
    2     return x+1
    3 
    4 
    5 print(calc(10))
    6 # print(lambda x:x+1)  # 匿名函数内存地址
    7 
    8 func = lambda x: x + 1
    9 print(func(10))

    高阶函数

      满足任意一个条件:

      1、函数的传入参数是一个函数名

      2、函数的返回值是一个函数名

    1.map内置函数   map(func, *iterables) --> map object
     1 num_l = [1, 2, 3, 4, 5, 6]
     2 # lambda x: x+1
     3 
     4 
     5 def add_one(x):
     6     return x+1
     7 
     8 
     9 def map_test(func, array):
    10     """
    11     模拟map内置函数
    12     :param func: 传入的参数进行处理方法
    13     :param array: 传入可迭代的对象
    14     :return:
    15     """
    16     ret = []
    17     for i in array:
    18         res = func(i)
    19         ret.append(res)
    20     return ret
    21 
    22 
    23 print(map_test(add_one, num_l))
    24 print(map_test(lambda x: x+1, num_l))
    25 res = map(lambda x: x+1, num_l)
    26 print(list(res))
    27 
    28 
    29 name = 'eric'
    30 v = map(lambda x: x.upper(), name).__iter__()   # 把对象转成可迭代对象 遵行迭代协议
    31 r = v.__next__()  # next直到StopIteration
    32 print(r)
    33 
    34 # print(list(map(lambda x: x.upper(), name)))
    map

      2.filter函数

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 
     4 
     5 movie_person = ['eric_sb', 'alex_sb', 'lhf']
     6 
     7 
     8 def sb_show(x):
     9     return x.endswith('_sb')
    10 
    11 
    12 def filter_test(func, array):
    13     ret = []
    14     for p in array:
    15         if not func(p):
    16             ret.append(p)
    17     return ret
    18 
    19 
    20 print(filter_test(sb_show, movie_person))
    21 
    22 print(list(filter(lambda x: not x.endswith('_sb'), movie_person)))
    filter

      3.reduce函数

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 
     4 
     5 from functools import reduce
     6 
     7 num_l = [1, 2, 3, 100]
     8 
     9 
    10 def reduce_test(func, array, init=None):
    11     if init is None:
    12         res = array.pop(0)
    13     else:
    14         res = init
    15     for num in num_l:
    16         res = func(res, num)
    17     return res
    18 
    19 
    20 # print(reduce_test(lambda x, y: x * y, num_l))
    21 # reduce:处理一个序列,然后把序列合并操作
    22 print(reduce(lambda x, y: x * y, num_l, 2))
    23 
    24 
    25 def reduce(function, sequence, initial=None):  # real signature unknown; restored from __doc__
    26     """
    27     reduce(function, sequence[, initial]) -> value
    28 
    29     Apply a function of two arguments cumulatively to the items of a sequence,
    30     from left to right, so as to reduce the sequence to a single value.
    31     For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates
    32     ((((1+2)+3)+4)+5).  If initial is present, it is placed before the items
    33     of the sequence in the calculation, and serves as a default when the
    34     sequence is empty.
    35     """
    36     pass
    reduce
    4.其它内置
     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 
     4 
     5 # import re
     6 # some_text = 'a,b,,,,c d'
     7 # reObj = re.compile('[, ]+')  创建re对象
     8 # print(reObj.split(some_text))
     9 
    10 
    11 import re
    12 
    13 some_text = 'a,b,,,,c d'
    14 print(re.split('[, ]+', some_text))  # 会导致重复re模块,降低匹配速度
    15 print(complex('1+2j'))
    16 
    17 # print(complex('1 + 2j')) ValueError官方文档上
    18 exec("print("hello, world")")
    19 print(eval("1+2*2"))
    20 a = '{"name":"alex"}'
    21 print(eval(a))
    22 print(float(2))
    23 print(help(compile))
    24 print(repr(1))  # 终端打开
    25 # slice() 切片
    26 # vars() 有点像locals()
     
  • 相关阅读:
    2019.6.15刷题统计
    入门组完成情况
    2019.6.14刷题统计
    2019.6.13刷题统计
    绑定与非绑定方法 继承 继承与抽象 查找属性关系 派生与覆盖 访问父类的内容
    23 xml 面向对象
    day22 configparser模块 subprocsee模块 表格
    Python常用模块
    20.logging日志 re正则
    导入模块 包
  • 原文地址:https://www.cnblogs.com/Alexephor/p/11190587.html
Copyright © 2011-2022 走看看