我被告知python函数是通过引用传递的,这是一个例子
def append_element(some_list, element):
some_list.append(element)
data = [3, 1, 2]
append_element(data, 4)
print(data)
[3,1,2,4]
原来的data
已经改变了。让我感到困惑的是
y = sorted(data)
print(y)
[1,2,3,4]
print(data)
[3,1,2,4]
如果python函数确实通过引用传递,那么为什么在这个函数调用sorted()
后,data
没有改变?
答案 0 :(得分:2)
sorted()
的输出是一个不同的全新列表。它与论证不一样。