map和lambda表达式
2022-11-08 本文已影响0人
Q_Mia
一. lambda
匿名函数lambda:是指一类无需定义标识符(函数名)的函数或子程序。
- lambda 函数可以接收任意多个参数 (包括可选参数)
- 包含的表达式不能超过一个
- lambda 函数不能包含命令
- lambda匿名函数的格式:冒号前是参数,可以有多个,用逗号隔开,冒号右边的为表达式。其实lambda返回值是一个函数的地址,也就是函数对象。
def sq(x):
return x*x
for i in range(1, 5):
print(sq(i))
p = lambda y: y * y
for j in range(1, 5):
print(p(j))
二. map
map是Python的内置函数。
map(function, literration...)
- function:函数
- literration:一个序列或者多个序列
- python2 返回list
- python3 返回迭代器,需使用list转换
map的使用示例如下:
list1 = [1, 2, 3, 4, 5]
list2 = [6, 7, 8, 9, 10]
print(list(map(lambda i: i * i, list1))) #[1, 4, 9, 16, 25]
print(list(map(lambda i, j: i * j+1, list1, list2))) #[7, 15, 25, 37, 51]
# 使用map函数将数字转换成字符串
num = 134986
l1 = []
while num:
x = num % 10
l1.insert(0, x)
num = num // 10
print(list(map(str, l1)))
# 序列[1, 3, 5, 7, 9]变换成整数13579
print(reduce(lambda x, y: x * 10 + y, [1, 3, 5, 7, 9]))
# 将['1', '3', '5', '7', '9']转成13579
print(reduce(lambda x, y: x * 10 + y, map(int, ['1', '3', '5', '7', '9'])))