- 此问题在此处已有答案**:
How are Python in-place operator functions different than the standard operator functions?(2个答案)
2天前关闭。
声明
lst = []
python中这两行代码的区别是什么?为什么第一行可以工作,另一行不行
lst += 'a' # this line is working
lst = lst + 'a' # but this line is showing error 'can only concatenate list (not "str") to list'
不理解为什么这两个语句会给出不同的结果
1条答案
按热度按时间iqxoj9l91#
在一个列表中,
+=
和extend
是一样的,这个参数被看作是一个可迭代的,所以它对字符串进行迭代并将其相加,但是在一般情况下,它是不正确的,例如长度大于1的字符串。或者加上一个整数
另一方面,在
lst + <right term>
中,正确的项应该是一个列表,即使是tuple
也会以错误结束。在您的情况下,最佳解决方案是
或
这避免了创建列表只是为了将其添加到第一个列表。
顺便说一句,
因为它在具有添加的
other_list
的旧列表的副本上重新分配lst
名称。lst