为什么+ =更改原始列表,如追加?

时间:2018-09-08 17:37:11

标签: python

感谢您的解释:

Why does not the + operator change a list while .append() does?

我是编程新手,并且从udacity编程课程入门入手。

基于上述内容,我了解了为什么append会更改原始列表,而+操作会创建一个新列表。但是我感到困惑的是,为什么+=运算符最终会改变原始列表。 +=与附加值不同。

我在下面通过Udacity发布了我的代码的简化版本,Dave Evans介绍了有关列表属性的练习

list1 = [1,2,3,4,5]
list2 = [1,2,3,4,5]

def proc(mylist):
    mylist = mylist + [6, 7]

def proc3(mylist):
    mylist += [6, 7]

print "demonstrating proc"
print list1
proc(list1)
print list1 # prints [1,2,3,4,5]

print 'demonstrating proc3'
print list2
proc3(list2
print list2 # prints [1,2,3,4,5,6,7]

print list2list2都执行相同的操作时,为什么最后一个proc最终会更改原始的proc3

mylist += [6, 7]是否与mylist = mylist + [6, 7]相同?为什么+=操作最终会像附录操作一样导致原始列表发生变异,而mylist = mylist + [6, 7]却没有更改原始列表

简而言之,即使在类似于追加附加功能的函数之外调用+=操作,最终也会更改列表。

谢谢 饶

0 个答案:

没有答案