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’是不行的

但是,整形数据不是数据类型,不能切片:

所以这里,能够正确传入的数据只能是可被转为整形的字符串了:

补充:字符串也是一个数组对象,可以被切片

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-12-02
#这个lambda函数有错,不能float一个list
#我目测你想要的是这个函数是输入的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]

第2个回答  2017-12-02
lambda创建一个匿名函数。冒号前面是传入参数,后面是一个处理传入参数的单行表达式。调用lambda函数返回表达式的结果。list的sort同于内建函数sorted。它有三个参数cmp,key,reverse,均有默认值。cmp是一个比较器,自定义比较器的话传入
第3个回答  2017-12-19
x 传进来的是一个字符串 截取第一位和最后一位,取中间的数字,转换成float类型。
相似回答