python的函数相关知识,python中常见的函数
Python自带了几个有趣的函数,通常在面试或者笔试的时候会被问到。其中三个是映射、过滤和减少功能。
1.map(function, iterable)
要传递的第一个元素是函数名或lambda匿名函数表达式,第二个元素传递给iterable对象。
Array=[1,2,3,4,5]result=map(x 3360 x 1,array) result #这里result直接打印的结果是一个对象,需要通过list进行转换。
在0x 0000000003 a 79518 list(result)[2,3,4,5,6]可以看到具体的结果MapObject。这里可以看到map函数结果中的每个元素都比原列表中对应的元素大1,我的缩写lambda表达式就是每个元素加1。
可以看出map()函数的作用是操作iterable对象中的每个元素,然后返回元素操作形成的iterable对象。
2.filter(function, iterable)
类似地,第一个参数被传入函数名或匿名函数,第二个元素被传入iterable对象。
#首先传入map的函数,并尝试array=[1,2,3,4,5]result=filter(x 3360 x 1,array) ResultFilterObject。
0x0000000003A79550list列表(结果)
#结果没有改变,表示没有对参数执行任何操作,返回[1,2,3,4,5]
#对函数进行真假判断并返回。try result 1=filter(lambda x 3360 sifx % 2==0 else none,array) Result1 FilterObject。
0x0000000003C28A90list列表(结果1)
#返回值为True [2,4]。从上面的代码可以看出,filter()函数是一个将iterable对象的元素代入函数,然后返回True的元素。过滤的时候一般都可以用,所以不需要写循环。
3.reduce(function, iterable)
reduce函数仅在python2中可用,输入参数与map和filter相同。但是,它的函数传入两个元素。将前两个元素代入函数后,返回运算后的值,然后将返回值作为第一个元素。同时,将第三个元素作为第二个元素再次代入函数进行运算,直到返回最终结果。
array=[1,2,3,4,5]
result=reduce(x,y:x y,array)
列表(结果)
#1 2 3 4 5=1515它的操作步骤其实很简单:
第一次x=1,y=2传入匿名函数,x y是返回值3。
第二次把x=3(返回的3)和y=3(这个3是列表中的第二个元素)代入函数,返回的x y是6。
第三次x=6,y=4,x y为10。
第四次x=10,y=5,x y为15。
没有以下元素可以传入并直接结束。
温馨提示:python工具自带的函数不一定是最快的算法,只是为了方便。写代码又快又简洁。如果追求速度,还是要自己去找最好的算法。(这就是为什么面试中有那么多关于算法和数据结构的问题)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。