python - 这两种将元组附加到列表的方法有什么区别

标签 python

<分区>

我有以下中断的代码:

l = []
tup = ('a', 'b')
l = l + tup

给出以下错误

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "tuple") to list

但是下面的代码运行

l = []
tup = ('a','b')
l += tup

没有任何错误。

我一直以为l+=和l = l +是一样的

这里发生了什么?

最佳答案

问题是 l = l + 正在调用 list__add__ 方法,而 l += 正在调用__iadd__方法,也就是原地加法(相当于调用extend方法)。

关于python - 这两种将元组附加到列表的方法有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49999115/

相关文章:

带有可变参数的 Python "maximum recursion depth exceeded in comparison"。但是,可以很好地处理列表

python - 错误 : Increase MaxLocksPerFile registry entry via Python

python - numpy 中的数组操作

python - 简单的python列表理解

python - 使用SSH中的SSH ProxyCommand的SFTP

python - Raspbian 上的 MySQL+Python 产生语法错误

python - 同一图中的两个不同图形

python - python 中没有模块 lxml.html 的库 stub 文件

python - matplotlib 分离散点图点并创建分割曲线

python - 网格未按预期工作 python Tkinter