本文实例讲述了Python常见内置高效率函数用法。分享给大家供大家参考,具体如下:
1. filter(function,sequence)
将sequence中的每个元素,依次传进function函数(可以自定义,返回的结果是True或者False)筛选,返回符合条件的元素,重组成一个String,List,Tuple等(跟sequence一样)
示例
1
2
3
4
|
def func(x): return x % 2 = = 0 and x % 3 = = 0 filter (func,( 3 , 6 , 8 , 12 , 15 , 21 )) #(6, 12) |
2. map(functiom,sequence)
将sequence中的每个元素,依次传进function函数(可以自定义,返回的结果是数值)计算,无论sequence是什么类型,都返回List
示例
1
2
3
4
|
def func(x): return x * 2 map (func,( 3 , 6 , 8 , 12 , 15 , 21 )) #[6, 12, 16, 24, 30, 42] |
map支持多个sequence输入,但是function也要有相同数量的参数
1
2
3
4
5
6
|
def func(x,y): return x + y seq1 = [ 3 , 6 , 4 , 8 ] seq2 = [ 6 , 4 , 3 , 7 ] map (func,seq1,seq2) #[9, 10, 7, 15] |
注意:以上示例是在python2.7中的,python3要用如下用法
1
2
3
4
5
|
>>> map_obj = map ( lambda x:x + 1 ,[ 1 , 2 , 3 , 4 ]) >>> map_obj < map object at 0x0000014C511BD898 > >>> list (map_obj) [ 2 , 3 , 4 , 5 ] |
3. reduce(function, sequence, starting_value)
将sequence中的item顺序迭代调用function,例如可以用来对List求和:
1
2
3
4
5
|
def add(x,y): return x + y reduce (add,[ 3 , 6 , 4 , 8 ]) #21 #相当于运行‘3+6+4+8'=21 |
如果有starting_value,还可以作为初始值调用
1
2
3
4
5
|
def subtract(x,y): return x - y reduce (subtract,[ 3 , 6 , 4 ], 20 ) #7 #相当于'20-3-6-4'=7 |
4. lambda匿名函数
语法:lambda 参数1,参数2(,参数n..):表达式
返回的是一个函数对象
示例
1
2
3
|
func = lambda x,y:x + y func( 3 , 5 ) #8 |
将lambda和reduce结合
1
2
|
reduce ( lambda x,y:x + y,[ 3 , 6 , 4 , 8 ]) #21 |
希望本文所述对大家Python程序设计有所帮助。
原文链接:https://www.cnblogs.com/wongbingming/p/6816544.html