python中lambda和map
1.lambda
这个可以看成函数的简化版,下面看几个例子:
例1
a = 10
f = lambda x: x * a
print(f)
print(type(f))
print(f(3))
<function <lambda> at ...> # 这里的 ... 指得是运行代码时分配的地址
<class 'function'>
30
例二
add=lambda x,y:x+y
print(add(3,4))
7
2.map
map(function,iterable,...)
它的功能是:将指定的函数,依次作用于可迭代对象的每个元素,并返回一个迭代器对象。这个可迭代对象,可以是一个也可以是多个。
参数
function-我们指定的函数(或数据类型),可以是python内置的,也可以是自定义的。
iterable-可迭代的对象,例如列表,元组,字符串等。
返回值
返回一个可迭代对象,一般搭配list()使用,输出列表
例如:
#自定义一个函数a,返回x*2的值
def a(x):
return x*2
#定义列表
lis1=[1,3,5,7,9]
#对列表中的每个数运用函数a,返回迭代器
lis1_a=map(a,lis1)
#输出迭代器中的值
for num in lis1_a:
print(num)
#输出结果
'''
2
6
10
14
18
'''
例子
本来是上面的然后要转化成下面
代码
inputfile = '../data/menu_orders.xls'
outputfile = '../tmp/apriori_rules.xls' # 结果文件
data = pd.read_excel(inputfile, header = None)
print(data)
print(u'\n转换原始数据至0-1矩阵...')
ct = lambda x : pd.Series(1, index = x[pd.notnull(x)]) # 转换0-1矩阵的过渡函数
b = map(ct, data.values) # 用map方式执行,这个是对data中的每一个进行遍历,然后按照ct处理
data = pd.DataFrame(list(b)).fillna(0) # 实现矩阵转换,空值用0填充
print(u'\n转换完毕。')
print(data)
我们看一下map之后的数据,也就是list(b)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?