lambda x: float(x[1:-1]) 这个函数是啥意思,python 3.5
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lambda x: float(x[1:-1]) 这个函数是啥意思,python 3.5相关的知识,希望对你有一定的参考价值。
先拆分来看:
lambda在python中是匿名函数的意思,同一般的函数不一样,它没有名字,也就不能调用,并且实质上lambda就是一个表达式,但是可以赋值给一个变量,通过这个变量来调用匿名函数,比如:
以上算的就是2的平方
float()是一个内置函数,可以把对象转换成一个浮点型数据,比如:
x[1:-1]是数组切片的用法,里面的1和-1分别都是索引值,意思是在x数组中,从索引值为1的到-1的索引值切片出来。比如:
然后整合来看:
lambda x: float(x[1:-1])只是一个表达式,就好比初中学的一元一次方程x+2=0一样,前面lambda x都只是定义一个形式,为了说明这个表达式的未知数是x,x可变的
重要的在后面的float(x[1:-1]),这里要注意,传入参数不对的话会报错,因为float接受的参数只能是一个整形数据和字符串数据,不能是数组类型,并且前提这个字符串数据可以被转为整形数据,比如‘285’,如果是‘python’是不行的:
但是,整形数据不是数据类型,不能切片:
所以这里,能够正确传入的数据只能是可被转为整形的字符串了:
补充:字符串也是一个数组对象,可以被切片
#我目测你想要的是这个函数是输入的x是一个list,返回list的第二个元素之后到倒数第二个的元素组成的list,
#然后后将这个list的数转换为float,前提是能转换
正确的写法如下:
myfun = lambda x : [float(i) for i in x[1:-1]]
#例子
inlist = [1,2,3,4,5]
print(myfun(inlist))
#[2.0, 3.0, 4.0] 参考技术C x 传进来的是一个字符串 截取第一位和最后一位,取中间的数字,转换成float类型。
python tips:匿名函数lambda
lambda用于创建匿名函数,下面两种函数定义方式等价。
1 f = lambda x: x + 2 2 3 def f(x): 4 return x + 2
立刻执行的匿名函数
(lambda x: print(x))(2)
输出结果
1 2
匿名函数实现闭包
1 f = lambda x:lambda y: x & y 2 3 x = 1 << 5 4 t = f(x) 5 print(t(0)) 6 print(t(32)) 7 8 # f的等价形式 9 def f(x): 10 def s(y): 11 return x & y 12 return s
输出结果
1 0 2 32
以上是关于lambda x: float(x[1:-1]) 这个函数是啥意思,python 3.5的主要内容,如果未能解决你的问题,请参考以下文章
Matlab中的lambda表达式 f=@(x) x^2-2*x+1;