Python作为一种编程语言,在人们的日常工作与生活中应用地愈加广泛,有些人将其用来做爬虫、数据分析与可视化,也有不少人用它来做机器学习与深度学习建模预测。
为了避免敲打出复杂而又冗长的代码,今天就来和大家分享一下Python当中可以提效的三个函数方法,希望大家可以喜欢。
map()
定义:
它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
示例:
def num_func(x):
return x ** 2/2
data = [1,3,5,7,9,12]
list(map(num_func,data))
#输出 0.5,4.5,12.5,24.5,40.5,72.0]
相信读者在日常的实践操作中用for循环的比较多,但是与map()函数相比还是略显复杂与冗长,同时更加简洁的方式就是map和lambda结合
进阶示例:
data = [1,3,5,7,9,12]
result = list(map(lambda x:x**2/2,data))
#输出 0.5,4.5,12.5,24.5,40.5,72.0]
filter()
定义
filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
当然读者也完全可以使用for循环加if条件筛选来过滤出相应的元素,但上述操作实在太过于繁琐
示例:
def bigger_than_15(x):
return x>15
data = [2,3,5,6,8,9]
list(filter(bigger_than_15,data))
reduce()
定义:
reduce() 函数会对参数序列中元素进行累积
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
参数列表
function | 有两个参数的函数,必须参数 |
---|---|
sequence | tuple,list,dict,string等可迭代(可理解为可遍历)数据类型,必须参数 |
initial | 初始值,可选参数 |
示例:
from functools import reduce
def add_nums(x,y):
return x + y
data = [5,10,13,56]
reduce(add_nums,data)
进阶示例:
from functools import reduce
data = [5,10,13,56]
reduce(lambda x,y:x+y,data)