关于map()
map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
【简单说:map()接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 】
map() 函数语法
map(function, iterable, ...)
a=map(int, (1,2,3))
# print(list(a))
# # 将元组转换成list
print(list(map(int, (1,2,3))))
# # 将字符串转换成list
print(list(map(int, '1234')))
# # 提取字典的key,并将结果存放在一个list中
print(list(map(int, {1:2,2:3,3:4})))
# # 字符串转换成元组,并将结果以列表的形式返回
print(list(map(tuple, 'agdf')))
# # 将小写转成大写
def u_to_l (s):
return s.upper()
print(list(map(u_to_l,'asdfd')))
或者上面代码用的df = df.map(function)格式。
lambda匿名函数
-
lambda匿名函数的格式:冒号前是参数,可以有多个,用逗号隔开,冒号右边的为表达式。
其实lambda返回值是一个函数的地址,也就是函数对象。
x**y表示x的y次方 -
将lambda函数作为参数传递给其他函数比如说结合map、filter、sorted、reduce等一些Python内置函数使用。
# c=lambda x,y,z:x*y*z
# print(c(2,3,4))
#
# print((lambda x:x**2)(3))
#
# a=lambda x , y : x ** y
# print(list(map(a,[2,4,6],[3,2,1])))
#跟filter过滤函数结合
a=list(filter(lambda x:x%3==0,[1,2,3,4,5,6]))
# print(a)
#跟map映射函数结合
squares = map(lambda x:x**2,range(5))
# print(list(squares))
# 与sorted()函数结合使用,比如:创建由元组构成的列表
a=[('b',3),('a',2),('d',4),('c',1)]
#按照第一个元素排序
sorted(a,key=lambda x:x[0])
# [('a',2),('b',3),('c',1),('d',4)]
#按照第二个元素排序
sorted(a,key=lambda x:x[1])
# [('c',1),('a',2),('b',3),('d',4)]
#与reduce函数结合使用
from functools import reduce
print(reduce(lambda a,b:'{},{}'.format(a,b),[1,2,3,4,5,6,7,8,9]))
# 输出:1,2,3,4,5,6,7,8,9
def f(x, y):
return x + y
print(reduce(f, [1, 3, 5, 7, 9]))
reduce()函数也是Python内置的一个高阶函数。
reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。
原文链接
https://blog.csdn.net/weixin_43629813/article/details/120039597
https://blog.csdn.net/Jerome9508/article/details/101864588