• 十二:重要的内置函数


    一:filter 函数(过滤器函数):通常用于过滤的功能,需要加入过滤的条件,过滤的对象为一个可迭代对象的每一个元素,返回一个filter 对象,通过强转换才可以显示内容。

    example1:

     1 # filter  过滤器函数
     2 
     3 str = ['a','b','c','d']
     4 
     5 def func(s):   # s 为每一个可迭代对象的元素
     6         if s != 'a':   # filter 只能过滤,有过滤条件
     7             return s
     8 
     9 ret = filter(func,str)   
    10 print(ret)                # <filter object at 0x037A55B0>
    11 print(list(ret))         # ['b', 'c', 'd']

    二:map 函数:参数为一个可迭代对象的每一个元素,是对每一个元素执行相同的操作(通过函数实现具体的操作),返回一个map 对象,同样可以用强制转换来显示内容。

    example 2:

     1 # map 函数
     2 
     3 str = ['a','b','c','d']
     4 
     5 def func(s):
     6     return s + 'zhang'   # 无过滤条件,filter不起作用
     7 
     8 ret = filter(func,str)
     9 print(list(ret))          # str==['a', 'b', 'c', 'd'],没有任何改变
    10 ret = map(func,str)
    11 print(ret)               # <map object at 0x03A15CB0>
    12 print(list(ret))         # ['azhang', 'bzhang', 'czhang', 'dzhang']

    三:reduce 函数:参数为一个可迭代对象的每一个元素,是对每一个元素执行迭代操作(通过函数实现具体的操作),返回一个具体的值而不是对象。

    example 3:

    1 # reduce 函数
    2 
    3 from functools import reduce   # 在py3中需要调用,不是内置函数
    4 
    5 def add(x,y):
    6     return x + y
    7 
    8 ret = reduce(add,range(1,11))   # 迭代相加,结果不是迭代器,就是一个值
    9 print(ret)             #  55

    四:lambda 函数(匿名函数):传统的函数需要定义和返回语句,并且需要函数名,但是匿名函数不需要函数名,是一条语句,这条语句和函数有相同的功能。一般情况下和map ,reduce 这些函数配合使用。

    格式:lambda x,y : x + y         (其中,x,y 为函数的参数,x+y 为函数的返回值)

    example 4:  reduce + lambda 使用实例

    1 # lambda 匿名函数
    2 # lambda x,y: x * y     参数是 x,y ,返回值是 x*y
    3 
    4 #    Reduce + lambda
    5 
    6 ret = reduce(lambda x,y: x * y,range(1,5))  # 迭代操作实现阶乘功能
    7 print(ret)   # 24

    example 5:map + lambda 使用实例

    1 #  map() + lambda
    2 
    3 square = map(lambda x: x * x,range(5))
    4 print(square)       # <map object at 0x016673F0> 一个 map 对象
    5 print(list(square)) #  [0, 1, 4, 9, 16]
    所有博文均为原著,如若转载,请注明出处!
  • 相关阅读:
    容器的注册
    context创建过程解析(三)之deployDirectories
    context创建过程解析(二)之deployWARs
    Redis数据类型
    Kafka常用命令
    使用Charles抓包微信小程序
    DO、DTO、BO、AO、VO、POJO定义
    主题样式之鼠标点击效果
    Mysql常用命令
    Linux常用命令
  • 原文地址:https://www.cnblogs.com/zpcoding/p/9448643.html
Copyright © 2020-2023  润新知