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

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

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

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

参考技术A lambda创建一个匿名函数。冒号前面是传入参数,后面是一个处理传入参数的单行表达式。调用lambda函数返回表达式的结果。list的sort同于内建函数sorted。它有三个参数cmp,key,reverse,均有默认值。cmp是一个比较器,自定义比较器的话传入 参考技术B #这个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]

参考技术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的主要内容,如果未能解决你的问题,请参考以下文章

python lambda表达式简单用法

Matlab中的lambda表达式 f=@(x) x^2-2*x+1;

对 a = [lambda : x for x in range] 的理解

Python进阶-Ⅷ 匿名函数 lambda

python的lambda函数

Python中关于Lambda函数的使用总结