以下arg解包的区别

Difference between arg unpacking in the following

以下两个语句之间的区别是什么:

>>> from_vargs_1 = lambda *x: list(x)
>>> from_vargs_2 = lambda *x: x

换句话说,有或没有显式 list。等式 tuple(from_vargs_1(...)) == from_vargs_2(...) 总是成立吗?

如果尝试一下会更快。

from_vargs1 = lambda *x: list(x)
from_vargs2 = lambda *x: x
x = from_vargs1( 1, 2, 3 )
y = from_vargs2( 1, 2, 3 )
print( x )
print( y )

输出:

[1, 2, 3]
(1, 2, 3)

是的,当您使用 *x 时,函数的位置参数作为元组传递。