gpt4 book ai didi

Python:通过引用和切片赋值传递

转载 作者:太空狗 更新时间:2023-10-30 01:44:15 25 4
gpt4 key购买 nike

在 Python 中,列表是通过引用传递给函数的,对吗?

如果是这样,这里发生了什么?

>>> def f(a):
... print(a)
... a = a[:2]
... print(a)
...
>>> b = [1,2,3]
>>> f(b)
[1, 2, 3]
[1, 2]
>>> print(b)
[1, 2, 3]
>>>

最佳答案

在声明中:

a = a[:2]

您正在创建一个新的本地(到f())变量,您使用与输入参数a 相同的名称来调用它。

也就是说,你所做的相当于:

def f(a):
print(a)
b = a[:2]
print(b)

相反,您应该更改 a 就地,例如:

def f(a):
print(a)
a[:] = a[:2]
print(a)

关于Python:通过引用和切片赋值传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45335809/

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