【发布时间】:2015-01-30 20:40:44
【问题描述】:
我有一个简单的例子。 test_list_change 函数应该更改作为参数传递给它的列表。 在这个函数内部有一个对子程序 test_list_change_2 的调用,它应该改变同一个列表。
问题是,结果列表不包含 test_list_change_2 子例程所做的更改
为什么会这样?
示例如下:
def test_list_change(lst):
if len(lst) < 3:
lst.append("the last one")
test_list_change_2(lst)
def test_list_change_2(lst):
lst = ["the very last one"]
string_list = ["first", "another one"]
test_list_change(string_list)
print (string_list)
输出:
['第一个', '另一个', '最后一个']
【问题讨论】:
-
只返回
return ["the very last one"]与您在函数中尝试执行的操作相同,我认为您的代码不会按照您的预期进行
标签: python list subroutine function-parameter