标签:reduce amp tool 参数 相同 0x03 函数实现 匿名 并且
一: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]
标签:reduce amp tool 参数 相同 0x03 函数实现 匿名 并且
原文地址:https://www.cnblogs.com/zpcoding/p/9448643.html