gpt4 book ai didi

python - 在 Python 中使用 `for` 循环语句解包序列结构

转载 作者:行者123 更新时间:2023-11-28 22:28:58 25 4
gpt4 key购买 nike

我无法理解为什么无法在 for 循环的标题行中解压缩以下内容。

鉴于:

>>> (a,b),c = (1,2),3
>>> a
1
>>> b
2
>>> c
3

为什么当我执行此操作时会收到错误消息?:

for (a,b),c in [(1,2),3]:
... print(a,b,c)

我知道如何让它工作,因为下面给出了我想要的结果:

>>> for (a,b),c in [((1,2),3)]:
... print(a,b,c)
1 2 3

但是,为什么要在 for 循环的标题行中用一个额外的括号将原始对象括起来才能实现此输出?

鉴于任何序列都可以解包[(1,2), 3] 在语法上作为列表序列是正确的,理论上应该能够分配给目标变量( a,b),c。那么为什么不是这种情况,为什么我必须用额外的括号将序列括起来?

如果对此有一些澄清,我们将不胜感激。

最佳答案

for 循环遍历列表条目,因此它第一次尝试将 (1,2) 分配给 (a,b), c,这是行不通的。添加额外的括号将 (1,2),3 转换为元组,该元组是单个列表条目 ((1,2),3) 以分配给 (a,b),c 第一次 for 循环迭代,有效。

尝试:

for v in [(1,2),3]:
print v

您会看到 v 被分配了 (1,2),然后是 3

关于python - 在 Python 中使用 `for` 循环语句解包序列结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43307108/

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