list1 += list2 和 list1= list1 + list2 的故事
前言
前几天在某乎上有人问问题,问道 list.append(ele) 和 list = list + [ele] 一样吗? 这个问题的答案自然是不一样的,这里就不过多描述了.重要的是,借由这个问题,我产生了一个新的问题: list1 += list2 和 list1= list1 + list2 这两者有区别吗 先说结论,自然是有区别的.
测试
花一分钟看个两个例子,如果你能正确的知道输出结果,那么这篇文章最重要的部分你已经掌握了,可以没有必要通读全文了.
Example00
1 | list1 = [1,2,3] |
Example01
1 | list1 = [1,2,3] |
输出
让我们看一下这两个例子的输出
Example00
1 | [1, 2, 3, 4, 5, 6] |
Example01
1 | [1, 2, 3, 4, 5, 6] |
原因
你可以将 “+=” 看作 extend, 它在原有的 list 基础上进行元素的拓充, 而 list = list + [ele] 则是,重新创建了一个 list 然后将原来的 list 和新添加的元素添加进去.为了帮助理解,我画了两张动图: