gpt4 book ai didi

python - 为什么在解包元组时 var 类型会发生变化?

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

考虑这个例子:

>>> t = (1, 2, 3)
>>> a, b, c = t
>>> a, b, c
(1, 2, 3)
>>> a, *b = t
>>> a, b
(1, [2, 3])

为什么在使用 a, *b = t 解包元组时得到的是列表而不是元组?

最佳答案

PEP 3132 中所述,这是扩展的可迭代拆包。类型不会“改变”;只是定义了 * 解包在所有情况下都会产生一个列表。

有人建议它产生:

  • 元组而不是列表:

Make the starred target a tuple instead of a list. This would be consistent with a function's *args, but make further processing of the result harder.

  • 与右侧相同的类型:

Try to give the starred target the same type as the source iterable, for example, b in a, *b = 'hello' would be assigned the string 'ello'. This may seem nice, but is impossible to get right consistently with all iterables.

最终,这些提议被否决了。

有关更多信息,请参阅 herehere .

关于python - 为什么在解包元组时 var 类型会发生变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54664546/

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