我正在为一个需要接收列表的函数实现 API,通过一些修改制作它的副本,然后将 out 参数设置为副本。即函数不返回任何内容,但必须更改作为参数传入的列表对象。像这样的东西:l = [1,2,3]def f(passed_in_list): different_list = [4,5,6] passed_in_list = different_list[:]print(l) # Prints [1,2,3]. How to make it [4,5,6] ?我怎样才能做到这一点?
3 回答
芜湖不芜
TA贡献1796条经验 获得超7个赞
您需要修改列表,而不是指向它的变量。正如其他人所提到的,您需要调用该函数:
l = [1,2,3]
def f(passed_in_list):
different_list = [4,5,6]
passed_in_list[:] = different_list[:]
f(l)
print(l)
慕的地6264312
TA贡献1817条经验 获得超6个赞
这让我觉得这是一种危险的设计模式,它创建了一个对全局范围具有故意副作用的函数。我会小心地做这样的事情。话虽如此,但看起来您似乎并未调用您的函数,这可能就是您没有看到预期内容的原因。
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
您需要实际调用您的函数:
l = [1,2,3]
def f(passed_in_list):
passed_in_list[:] = [4,5,6]
f(l)
print(l)
产量:
[4, 5, 6]
添加回答
举报
0/150
提交
取消