gpt4 book ai didi

Python:与 list.remove 混淆

转载 作者:太空狗 更新时间:2023-10-29 18:16:31 25 4
gpt4 key购买 nike

我是 Python 的新手,很抱歉这个可能很简单的问题。(虽然,我现在花了 2 个小时才找到答案)

我简化了我的代码来说明问题:

side=[5]
eva=side
print(str(side) + " side before")
print(str(eva) + " eva before")
eva.remove(5)
print(str(side) + " side after")
print(str(eva) + " eva after")

这会产生:

[5] side before
[5] eva before
[] side after
[] eva after

为什么删除命令也会影响列表“side”?如何在不修改列表的情况下使用“side”的副本?

非常感谢

编辑:非常感谢您提供好的和易于理解的答案!

最佳答案

Python 有“事物”和“事物的名称”。当你写作时

side = [5]

你做了一个新东西[5],并给它取名为side。当你接着写

eva = side

你为 side 取了一个新名字。作业只是给事物命名!仍然只有一件事 [5],有两个不同的名字。

如果你想要一件新东西,你需要明确地提出要求。通常你会做 copy.copy(thing),虽然在列表的情况下有特殊的语法 thing[:]

仅供引用,“事物”通常称为“对象”; “名称”通常称为“引用”。

关于Python:与 list.remove 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9622122/

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