美文网首页
Python高级函数

Python高级函数

作者: 蒋昉霖 | 来源:发表于2017-02-25 15:20 被阅读26次

    map()传入的第一个参数是f,即函数对象本身。由于结果r是一个Iterator,Iterator是惰性序列,因此通过list()函数让它把整个序列都计算出来并返回一个list。

    map(a,b)

    a 是一个函数的函数名

    b 是一个Iterable

    返回一个Iterator

    z = map(a,[x1,x2,x3,x4])

    next(z) = a(x1)

    next(z) = a(x2)

    next(z) = a(x3)

    next(z) = a(x4)

    reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算

    reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)

    filter()也接收一个函数和一个序列。filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

    def is_odd(n):
        return n % 2 == 1
    
    list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15]))
    # 结果: [1, 5, 9, 15]
    

    一个函数可以返回一个计算结果,也可以返回一个函数。
    返回一个函数时,牢记该函数并未执行,返回函数中不要引用任何可能会变化的变量。

    lambda 匿名函数关键字
    在Python中,对匿名函数提供了有限支持。还是以map()函数为例,计算 f(x)=x2 时,除了定义一个f(x)的函数外,还可以直接传入匿名函数

    >>> map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])
    [1, 4, 9, 16, 25, 36, 49, 64, 81]
    

    匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。

    函数原型
    声明:s为字符串,rm为要删除的字符序列
    s.strip(rm) 删除s字符串中开头、结尾处,位于 rm删除序列的字符
    s.lstrip(rm) 删除s字符串中开头处,位于 rm删除序列的字符
    s.rstrip(rm) 删除s字符串中结尾处,位于 rm删除序列的字符
    注意:

    1. 当rm为空时,默认删除空白符(包括'\n', '\r', '\t', ' ')
      例如:

    复制代码代码如下:

    a = ' 123'>>> a.strip()'123'>>> a='\t\tabc''abc'>>> a = 'sdff\r\n'>>> a.strip()'sdff'

    2.这里的rm删除序列是只要边(开头或结尾)上的字符在删除序列内,就删除掉。
    例如 :

    复制代码代码如下:

    a = '123abc'>>> a.strip('21')'3abc' 结果是一样的>>> a.strip('12')'3abc'

    相关文章

      网友评论

          本文标题:Python高级函数

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