Python中针对函数处理的特殊方法

Python中针对函数处理的特殊方法

很多语言都提供了对参数或变量进行处理的机制,作为灵活的Python,提供了一些针对函数处理的特殊方法

filter(function,
sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple

map(function, sequence)
:对sequence中的item依次执行function(item),见执行结果组成一个List

reduce(function, sequence,
starting_value):对sequence中的item顺序迭代调用function

sum(sequence):对集合中的元素进行累加

Python中针对函数处理的特殊方法

下面针对上面的描述写一个简单的小例子:

代码如下:

__author__ = 'Administrator'

from functools import
reduce

#主要用来掩饰map可以将某个序列中的元素传递给某个特殊的函数来处理

def map_demo():

   
#定义一个将字母转换成大写的函数

    def
to_upper(ch):

       
return str(ch).upper()

#对给定字符串中的每个字母应用to_upper函数

   
print(list(map(to_upper, "asdfasdfuasdlaksdjf".split())))

#主要使用一个基于布尔值得函数对元素进行过滤

def filter_demo():

    def
is_alnum(ch):

       
return ch.isalnum()

#!se会被过滤掉

    test_list =
['sdas', '123d', '!se', '孙阿斯蒂芬']

   
#基于具体函数

   
print(list(filter(is_alnum, test_list)))

   
#基于列表推导

    print(list(x
for x in test_list if x.isalnum()))

   
#基于匿名函数

   
print(list(filter(lambda x: x.isalnum(), test_list)))

#reduce的主要功能是利用列表中的两个元素迭代调用某个函数,最后得到一个结果

#在python3中要显示的添加 from functools import reduce

#本例中运行的过程大致是先是1 2=3,利用3 4=7,7 4.......

def reduce_demo():

   
print(reduce(lambda x, y: x y, range(1, 10)))

#利用sum函数累加列表中的值

def sum_demo():

   
print(sum(range(10)))

if __name__ == "__main__":

   
#map_demo()

   
#filter_demo()

   
#reduce_demo()

   
sum_demo()

上一篇:oracle 常用sql字符函数介绍


下一篇:try---catch异常处理