python提供了内联模块buidin,该模块定义了一些软件开发中常用的函数,这些函数实现了数据类型的转换, 数据的计算, 序列的处理等功能。 下面介绍内联模块中常用的四个内联函数。

(1)python的内置函数


功能: apply()是实现调用可变参数列表的函数,把参数列表存放在一个元组或者列表中.


声明格式:


apply(func, [argc[, kwargs]])


说明:


     (1)func是自定义的函数名称。


     (2)参数argc是一个自定义的函数参数的列表或者元组,若argc被省略则表示被执行的函数没有任何参数


     (3)参数kwargs是一个字典,字典的key值是参数的参数名称,value是实际的参数值。


     (4)apply的返回值就是func的返回值


应用举例:


#定义了sun,并定义了形式参数
 
        def sum(x=1, y=2):
 
           return x + y
 

 
        #通过调用sum输出为4
 
        print apply(sum, (1, 3))


(2)filter()


功能:filter()可以对某个序列做过滤处理,对自定义的函数返回的结果是否为”真“,来过滤,并一次性返回处理结果。


声明格式:


filter(func or None, sequence) -->list, tuple, or string


说明:


     (1)参func数是自定义的过滤函数,在函数func中定义过滤的规则。如果func为None,则表示过滤项全部为真,返回所有的序列元素。


     (2)参数sequence为待处理的序列。


     (3)filter()返回的是由func()的返回值组成的序列,返回的类型和参数sequence的类型相同。


应用举例:


         演示filter()的过滤功能,从给定的列表中过滤出大于零的数。

def func(x):
 
            if x > 0:
 
               return x
 

 
         print filter(func, range(-9, 10))


注意:filter()中过滤函数func的参数不能为空,否则, 没有可以存储sequence元素的变量,func()也不能处理过滤。




(3)reduce()


功能:对序列中元素的连续操作可以通过循环来实现,reduce也可以实现连续处理的功能。


声明格式:


reduce(func, sequence[, initial])--> value


说明:


     (1)参数func是自定义的函数,在函数func中实现对sequence的连续操作。


     (2)参数sequence为待处理的序列。


     (3)参数initial可以省略,如果initial不为空,则initial的值首先传入func进行计算,如果initial的值为空,则对initial的值进行处理。


     (4)reduce的返回值是func的返回值。


应用举例:实现对一个列表中数字进行累加的操作。


def sum(x, y):
 
           return x + y
 
        #对0+1+2+...+9进行计算,输出结果: 45
 
        print reduce(sum, range(0, 10))
 
        #对10 +0+1+2+3+...+9进行计算, 输出结果:55
 
        print reduce(sum, range(0, 10), 10)


注意:如果对reduce()进行累计计算,必须在sum中定义两个参数,分别对应加法运算两侧的操作数。


(4)map()


功能:map()的功能非常强大,可以对每个序列的每个元素执行相同的操作,并组程序列表返回。


声明格式:

map(func, sequence[, sequence]) --> list


说明:


     (1)参数func是自定义的函数,实现对序列每个元素的操作


     (2)参数sequence为待处理的函数,参数sequence的个数可以是多个


     (3)map的返回值是处理后的列表


应用举例:

#实现参数x 的幂运算
 
         def power(x):
 
             return x ** x
 
         #把1,2, 3, 4依次传入power中,计算结果组成一个列表返回,输出结果:[1, 4, 27, 256]
 
         print map(power range(1, 5))
 
         def power2(x, y):
 
             return x ** y
 
         #计算1^4, 2^4, 3^3, 4^2计算后的结果返回一个列表,输出结果:[1, 16, 27,16]
 
         print map(power2, range(1, 5), range(5, 1, -1))



注意:如果map中提供多个序列,则每个元素意义对应进行计算,若每个序列对应的长度不同,则短的序列后补充”None“,再进行计算。