python 解包成多个可选变量

python unpack into multiple optional variables

在 Perl 中,我可以做到

($x1, $x2, $x3, $x4) = (1, 2)

则$x1和$x2为1; $x3 和 $x4 是 'undef'

Python有类似的东西吗

(x1, x2, x3, x4) = [1,2]

使得x1和x2为1; x3 和 x4 是 None?

我在上面试过了,Python 给我错误:

not enough values to unpack (expected 4, got 2)

我尝试使用 * 运算符进行可选的解包

(x1, x2, *x3, *x4) = [1,2]

但是*只能使用一次

感谢您的建议。

背景:右边的列表(数组)可以是1到4之间的任意长度。我用[1,2]来举例。

您可以添加一些 None 并将多余的扫到地毯下面(使用刷子符号 * 和地毯符号 _ :-):

x1, x2, x3, x4, *_ = lst + [None] * 4