以下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
时,函数的位置参数作为元组传递。
以下两个语句之间的区别是什么:
>>> 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
时,函数的位置参数作为元组传递。