gpt4 book ai didi

python - Python中的部分列表解包

转载 作者:IT老高 更新时间:2023-10-28 21:33:52 26 4
gpt4 key购买 nike

在 Python 中,赋值运算符可以将列表或元组解包为变量,如下所示:

l = (1, 2)
a, b = l # Here goes auto unpack

但我需要在左侧指定与右侧列表中的项目计数完全相同的名称数量。但有时我不知道右侧列表的大小,例如,如果我使用 split()。

例子:

a, b = "length=25".split("=") # This will result in a="length" and b=25

但是下面的代码会报错:

a, b = "DEFAULT_LENGTH".split("=") # Error, list has only one item

是否有可能以某种方式解压缩上面示例中的列表,以便我可以得到 a = "DEFAULT_LENGTH"和 b 等于 None 或未设置?直截了当的方式看起来有点长:

a = b = None
if "=" in string :
a, b = string.split("=")
else :
a = string

最佳答案

除非您使用的是 Python 3,否则这可能对您没有用处。但是,为了完整起见,值得注意的是 extended tuple unpacking在那里引入允许您执行以下操作:

>>> a, *b = "length=25".split("=")
>>> a,b
("length", ['25'])
>>> a, *b = "DEFAULT_LENGTH".split("=")
>>> a,b
("DEFAULT_LENGTH", [])

即元组解包现在的工作方式类似于它在参数解包中的工作方式,因此您可以使用 * 表示“其余项目”,并将它们作为(可能为空的)列表。

分区可能是您正在做的最好的解决方案。

关于python - Python中的部分列表解包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/749070/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com