【发布时间】:2015-02-18 13:39:33
【问题描述】:
我在 Python 中有这段代码:
def sortList(x):
x.sort()
print "Values inside the function: ", x
return
mylist = [100,20,30];
sortList(mylist);
print "Values outside the function: ", mylist
输出是:
Values inside the function: [20, 30, 100] Values outside the function: [20, 30, 100]
现在,如果我写x=[1,2,3],而不是写x.sort(),那么输出是:
Values inside the function: [1, 2, 3] Values outside the function: [100, 20, 20]
那么为什么数组“mylist”的值会从函数内部发生变化?也只有当我对其执行一些操作时,而不是当我为它分配全新的值时?
谢谢!
【问题讨论】:
-
值得一看的是相关的:stackoverflow.com/questions/12797749/…
-
因为
list.sort是就地,所以修改对象并返回None,而x = [1, 2, 3]将名称x分配给一个全新的对象,完全不影响mylist。