lambda *x 什么意思?

lambda *x 什么意思?

看到这样一行程序:

   lambda *x: x[-1],

以前只写过lambda x: x + 1这种,不知道还可以在变量前加一个*。

没找到相关的说明,自己试了一下,也没试出到底加个*是做什么的。


回答:

*x 表示多个位置参数,你贴出的代码表示返回最后一个位置参数
**x 表示多个关键字参数,这些都是py的基础知识。
类似的用法go,js中用像...符号表示变长或收缩或展开运算,php则用*等等


回答:

lambda *x: x[-1]
这里如果把*x写成*args你可能就明白了
等价于

def unnamed(*x):

return x[-1]

print(unnamed(1, 2, 3))

输出是 3
如果不明白可以搜一下*args**kwargs的含义


回答:

其实就是任意数量的参数,比如:

lambda *x: sum(x)

就是参数求和
lambda表达式理解不了的话,其实可以把他写成def的形式

a = lambda *x: x[-1]

def a(*x):

return x[-1]

以上是 lambda *x 什么意思? 的全部内容, 来源链接: utcz.com/a/161894.html

回到顶部