一,lambda函数
-
(1)lambda函数
- lambda函数是一种匿名函数,即没有名字的函数
- 使用lambda保留字定义,函数名是返回结果
- lambda函数用于定义简单的,能够在一行内表示的函数
<函数名> = lambda<参数> :<表达式>
等价于
def <函数名>(<参数>):
<函数体>
return <返回值>
-
(2)lambda表达式
- lambda表达式可以用来声明匿名函数,也就是没有函数名字的临时使用的小函数,尤其适合需要一个函数作为另一个函数参数的场合。也可以定义具名函数。
- lambda表达式只可以包含一个表达式,该表达式的计算结果可以看做是函数的返回值,不允许包含复合语句,但在表达式中可以调用其他函数。
>>> f = lambda x,y,z : x+y+z
>>>f(1,2,3)
6
>>>g = lambda x,y = 2,z = 3:x+y+z
>>>g(1)
6
>>>g(2,z = 4,y = 5)
11
-
(3)lambda函数的应用
- lambda函数主要用作一些特定函数或方法的参数
- lambda函数有一些固定使用方式
- 一般情况,建议使用def定义的普通函数
二,map函数
-
(1)描述
map()会根据提供的函数对指定序列做映射。
第一个参数function以参数序列中的每一个元素调用function函数,返回包含每次function函数返回值的新列表。 -
(2)语法
map()函数语法: map(function,iterable,···)
参数:- function — 函数
-
iterable — 一个或多个序列
返回值:- python 2.x 返回列表。
- python 3.x 返回迭代器。
- (3)应用
def add(x,y,z):
return x+y+z
list1 = [1,2,3]
list2 = [1,2,3,4]
list3 = [1,2,3,4,5]
res = map(add,list1,list2,list3)
print(list(res))
[3, 6, 9]
三,filter函数
-
(1)描述
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。 -
(2)语法
filter()语法:filter(function,iterable)
参数:- function — 判断函数
- iterable — 可迭代对象
注意: Pyhton2.7 返回列表,Python3.x 返回迭代器对象!!!
-
(3)使用
内置函数filter()将一个单参数函数作用到一个序列上,返回该序列中是的该函数返回值为True的那些元素组成的filter对象,如果指定函数为None,则返回序列中等价于True的元素。
>>> seq = [ 'foo' ,'x41’, '?!', '***']
>>> def func(x): return x. isalnum() #测试是否为字母或数字
>>> filter(func, seq) #返回filter对象
<filter object at 0000000000305D898>
>>> list(filter(func, seq)) #把filter对象转换为列表 ['foo', 'x41']
四,zip函数
-
(1)描述
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
zip 方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中为了减少内存,zip() 返回的是一个对象。如需展示列表,需手动 list() 转换。 -
(2)语法
zip()语法:zip([iterable,…])
参数说明:- iterable — 一个或多个迭代器
返回值:返回元组列表。
-
(3)使用
>>>a = [1,2,3]
>>>b = [4,5,6]
>>>zip(a,b)
<zip at 0x20983ad7cc8>
>>>list(zip(a,b))
[(1, 4), (2, 5), (3, 6)]
>>>zipped = zip(a,b)
>>>list(zip(*zipped))
[(1, 2, 3), (4, 5, 6)]
五,enumerate函数
-
(1)描述
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
Python 2.3. 以上版本可用,2.6 添加 start 参数。 -
(2)语法
enumerate语法:enumerate(sequence,[start = 0])
参数:- sequence — 一个序列,迭代器或其他支持迭代对象
- start — 下标起始位置
返回值:返回enumerate(枚举)对象。
-
(3)应用
>>>seasons = [' Spring', ' Summer' ,'Fall', 'Winter']
>>>list (enumerate (seasons))
[(0, Spring ), (1, , Summer'), (2, 'Fall'), (3, ' Winter')]
>>>list (enumerate (seasons, start=1)) #从下标1开始
[(1, ’Spring' ), (2, 'Summer' ), (3, 'Fall'), (4, 'Winter' )]
>>>i=0
>>>seq = ['Tom' ,' Jerry, ' Bob']
>>>for element in seq:
print(i, seq[i])
i +=1
0 Tom
1 Jerry
2 Bob
>>>seq = ['Tom' ,' Jerry, ' Bob']
>>>for i, element in enumerate(seq):
print(i, element)
0 Tom
1 Jerry
2 Bob
版权声明:本文为SongJinGuo666原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。