gpt4 book ai didi

python - Python 引用是如何工作的?

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

我对 Python 引用感到困惑。考虑以下示例:

我的任务:编辑列表中的每个元素

d = { 'm': [1,2,3] }
m = d['m']
m = m[1:] # m changes its reference to the new sliced list, edits m but not d (I wanted to change d)

类似地:

d = { 'm': [1,2,3] }
m = d['m']
m = m[0] # As per python referencing, m should be pointing to d['m'] and should have edited d

在python中一切都通过引用,那么什么时候创建一个新对象呢?我们是否总是需要 copy 模块中的 copydeepcopy 来制作对象副本?

请澄清。

最佳答案

在 Python 中,变量不是一个装东西的盒子,它是一个指向对象的名称。在您的代码中:

  • d = { 'm': [1,2,3] } --> 将名称 d 绑定(bind)到字典
  • m = d['m'] --> 将名称 m 绑定(bind)到列表
  • m = m[1:] --> 将名称 m 绑定(bind)到另一个列表

你的第三行并没有改变 m 本身,而是改变了 m 指向的内容。

要编辑列表中的元素,您可以做的是:

m = d['m']
for i, item in enumerate(m):
result = do_something_with(item)
m[i] = result

关于python - Python 引用是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9724802/

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