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