lambda 表达式和匿名函数、eval函数

lambda 表达式可以用来声明匿名函数。
  lambda 函数是一种简单的、在同一行中定义函数的方法。lambda 函数实际生成了一个函数对象。
  
  lambda 表达式 只允许包含一个表达式,不能包含复杂语句,该表达式的计算结果就是 函数的返回值

lambda 表达式的基本语法如下:
      lambda arg1,arg2,arg3… : <表达式>
函数参数: arg1,arg2,arg3
函数体: <表达式>
运算结果是: 表达式的运算结果

f = lambda x,y:print("{0} * {1} = {2}".format(x,y,x*y))
f(9,9)
#该函数与下面的fun函数效果一样

def fun(x,y):
	return x*y

print(fun(9,9))

#lambda 也可以在列表中使用
a = [lambda x:x**3,lambda y:y**2,lambda x,y:x+y]
print("打印列表a每一项值:",a[0](3),a[1](6),a[2](3,6))

运行结果:

9 * 9 = 81
81
打印列表a每一项值: 27 36 9

map()函数

map()函数,需要两个参数,第一个参数是函数关系式,第二个是要传入的参数列表。

x = [1,2,3,4,5]
#f = lambda x:x**2
#y = list(map(f,y_label))
y = list(map(lambda x:x**2,x_label))

结果: [1,4,9,16,25]

eval()函数

功能: 将字符串 str 当成有效的表达式来求值并返回计算结果。
语法: eval(source,[globals,[ locals]]) -> value
参数:
source:一个 Python 表达式或函数 compile()返回的代码对象
globals:可选。必须是 dictionary
locals:可选。任意映射对象

s = "print('abcde')"
eval(s)

a = 10
b = 20
c = eval("a+b")
print(c)

dict1 = dict(a=100,b=200)
d = eval("a+b",dict1)	#dict1中的a,b传参给表达式“a + b”,所以打印出300
print(d)

运行结果:

abcd
30
300

eval 函数会将字符串当做语句来执行,因此会被注入安全隐患。比如:字符串中含有删除文
件的语句。那就麻烦大了。因此,使用时候,要慎重!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值