gpt4 book ai didi

python - 在函数内附加列表

转载 作者:行者123 更新时间:2023-12-01 19:09:32 24 4
gpt4 key购买 nike

我对 python 中参数的传递方式仍然有点困惑。我以为非原始类型是通过引用传递的,但是为什么下面的代码不打印 [1] 呢?

def listTest(L):
L = L + [1]


def main:
l = []
listTest(l)

print l #prints []

我怎样才能让它发挥作用。我想我需要通过引用传递“指向 L 的指针”

最佳答案

listTest()中,您重新绑定(bind)L到一个新的list对象; L + [1] 创建一个新对象,然后将其分配给 L。这使得 L 之前引用的原始 list 对象保持不变。

您需要直接通过调用L引用的list对象的方法来操作它,例如list.append():

def listTest(L):
L.append(1)

或者你可以使用list.extend():

def listTest(L):
L.extend([1])

或者您可以使用就地赋值,这使可变类型有机会就地更改对象:

def listTest(L):
L += [1]

关于python - 在函数内附加列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27178967/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com