如何将新列表分配给作为参数传递的列表?

我正在为一个需要接收列表的函数实现 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] ?

我怎样才能做到这一点?


眼眸繁星
浏览 202回答 3
3回答

芜湖不芜

您需要修改列表,而不是指向它的变量。正如其他人所提到的,您需要调用该函数:l = [1,2,3]def f(passed_in_list):   different_list = [4,5,6]   passed_in_list[:] = different_list[:]f(l)print(l)

慕的地6264312

这让我觉得这是一种危险的设计模式,它创建了一个对全局范围具有故意副作用的函数。我会小心地做这样的事情。话虽如此,但看起来您似乎并未调用您的函数,这可能就是您没有看到预期内容的原因。

翻过高山走不出你

您需要实际调用您的函数:l = [1,2,3]def f(passed_in_list):   passed_in_list[:] = [4,5,6]f(l)print(l)产量:[4, 5, 6]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python