Python 常用高阶函数
- 三元表达式
条件为真时返回的结果 if 条件判断 else 条件为假时返回的结果
>>>x = 2
>>>y = 3
>>>r = x if x > y else y
>>>print(r)
3
2.map 函数
>>>
list_x = [1,2,3,4,5,6]
>>>
def square(x):
... return x * x
...
>>>
r = map(square, list_x)
>>>
print(list(r))
[1, 4, 9, 16, 25, 36]
- lambda 函数
>>> list_x = [1,2,3,4,5]
>>> r = map(lambda x:x*x, list_x)
>>> print(list(r))
[1, 4, 9, 16, 25]
>>> list_x = [1,2,3,4,5]
>>> list_y = [2,4,6,8,10]
>>> r = map(lambda x, y:x*x + y,
list_x, list_y)
>>> print(list(r))
[3, 8, 15, 24, 35]
当两个参数数量不同时,取参数较少的为准进行计算
>>> list_x = [1,2,3,4]
>>> list_y = [2,4,6,8,10]
>>> r = map(lambda x, y:x*x + y,
list_x, list_y)
>>> print(list(r))
[3, 8, 15, 24]
- reduce 函数
#下面例子不是连续相加,是连续调用lambda表达式
>>> from functools import reduce
>>> list_x = [1,2,3,4,5]
>>> r = reduce(lambda x,y:x+y,
list_x)
>>> print(r)
>>> r = reduce(lambda x,y:x+y,
list_x, 10)#这里的10是作为初始值,作为调用lambda表达式的第一个x
25
- filter 函数
>>> list_x = [1,0,1,1,0]
>>> r = filter(lambda x:True if
x==1 else False, list_x)
>>> print(list(r))
[1, 1, 1]
以上是 python 常用的高阶函数,在 poc 过程中,巧妙使用在代码块中,关键节点会给 poc 过程节省非常多的时间。
可以发一个贴,包含所有 python 基础贴 链接