51Testing软件测试论坛

标题: 效率利器 map 结合 lambda [打印本页]

作者: 素简生香    时间: 2017-11-16 13:54
标题: 效率利器 map 结合 lambda
本帖最后由 素简生香 于 2017-11-17 11:05 编辑

效率利器 map 结合 lambda
mappython 系统内建的函数,用来批量的对列表元素进行操作
lambda表达式是 python 匿名函数的语法表达,用来传递较简单的算法
函数map()的原型为mapfunctionsequence[,sequence ,...]-> list
lambda 表达式的语法为 lambda para : return expression
看下面的两段样例代码
# sample code 1
n = 10
alist = [ m for m in range(n) ]
def calc(x):
  return (n-x) if x>n//2 else x
blist = map( calc, alist )
print "alist:{} \n blist:{}".format(alist,blist)
# sample code 2
clist = map( lambda x: n-x if x>n//2 else x, [m for m in range(n)] )
print "clist:{}".format(clist)
显然 sample code 2的代码比sample code 1的精简太多,lambda 表达式等效 calc函数,只不过匿名而已。






欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2