gpt4 book ai didi

python - 当 a 是列表时,a += number 和 a += number,(带尾随逗号)有什么区别?

转载 作者:太空狗 更新时间:2023-10-30 00:43:04 25 4
gpt4 key购买 nike

我正在阅读一段 Python 代码,但有一件事我无法理解。 a是一个列表,num是一个整数

a += num,

有效但是

a += num 

不会工作。谁能给我解释一下?

最佳答案

首先,这里需要注意的是,在这种情况下,a += 1,a = a + 1, 的工作方式不同。 (a = a + 1,a = a + (1,) 都抛出一个 TypeError 因为你不能连接一个列表和一个元组,但您可以扩展一个带有元组的列表。)

+= 调用列表的 __iadd__ 方法,该方法调用 list.extend 然后返回原始列表本身。

1, 是一个长度为 1 的元组,所以你正在做的是

>>> a = []
>>> a.extend((1,))
>>> a
[1]

这看起来很奇怪,因为只有一个元组。但它的工作方式就像用任意长度的元组扩展列表:

>>> a.extend((2,3,4))
>>> a
[1, 2, 3, 4]

关于python - 当 a 是列表时,a += number 和 a += number,(带尾随逗号)有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43311879/

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