python之lambda表达式

lambda函数小结

1.lambda表达式:

以前看人家写一个长式子就能干一件我写一个函数干的事情觉得好帅,现在通过学习知道了lambda表达式其原理就是一个函数,而且是一个只能处理简单功能的函数。

1 #普通函数
2 1 def func(a):
3 2     return a+1
4 3 print func(1000)
5 4
6 #lambda表达式 
7 5 func0 = lambda a:a+1
8 6 print func0(1000)

通过对比可以看出lambda表达式就是函数的简单表示。

1.处理简单逻辑。

2.自动return。

内置函数系列

1.filter函数:

对于序列中的元素进行筛选,最终获取符合条件的序列:(简单理解为取出值为Ture的值)

1 li = [11, 22, 33]
2 
3 new_list = filter(lambda arg: arg > 22, li)
4 
5 #filter第一个参数为空,将获取原来序列

2.map函数:

遍历序列,对序列中每个元素进行操作,最终获取新的序列。

使用map函数将会对列表中的所有元素进行操作。map有两个参数(函数,列表),它会在内部遍历列表中的每一个元素,执行传递过来的函数参数。在输出到新列表中。

Python包含 6 中内建的序列,包括列表、元组、字符串。

 1 '''例子1'''
 2 li =  [11,22,33]
 3 
 4 def func1(arg):
 5     return arg + 1  #这里是四则运算
 6 
 7 new_list = map(func1,li)  #这里有两个参数 (函数和序列),函数自己制定,一般和lambda结合使用更方便。
 8 new_list1= map(lambda a:a + 100,li)
 9 print new_list
10 输出结果:[12, 23, 34]
11 print new_list1
12 输出结果:[12, 23, 34]
13 
14 '''例子2'''
15 li = ['hello','nihao',]
16 def func1(arg):
17     return '%s test string' % arg  #或者使用+进行拼接万恶的+能不用最好不用他会在内存中开辟新的空间!
18 
19 new_strlist = map(func1,li)
20 print new_strlist
21 
22 输出结果:['shuaige test string', 'nihao test string']
23 
24 '''例子3'''
25 li = 'abcdefg'
26 def func1(arg):
27     return '%s test string' % arg
28 
29 new_list = map(func1,li)
30 print new_list
31 #结果:['a test string', 'b test string', 'c test string', 'd test string', 'e test string', 'f test string', 'g test string']

注意多个列表操作,每个序列的数量要相同。

"""
注意列表的个数值要一样
"""
la1=[11,22,33]
la2=[3,4,5]
la3=[1,2,4]
print map(lambda a,b,c:a+b+c,la1,la2,la3)
输出结果>>[15, 28, 42]

3.reduce函数

对于序列内所有元素进行累计操作

 1 li = [1,2,3,4,5,6,7,8]
 2 result =  reduce(lambda a1,a2:a1+a2,li) #累乘、除、加、减
 3 print result
 4 
 5 # reduce的第一个参数,函数必须要有两个参数,因为他是两两进行操作
 6 # reduce的第二个参数,要循环的序列
 7 # reduce的第三个参数,初始值
 8 
 9 #初始值
10 li = [1,2,3,4,5,6,7,8]
11 result =  reduce(lambda a1,a2:a1+a2,li,100000) #累乘、除、加、减
12 print result
posted @ 2015-12-14 23:05  楚时邀月  阅读(751)  评论(0编辑  收藏  举报