gpt4 book ai didi

python - Python中列表的赋值运算符

转载 作者:太空狗 更新时间:2023-10-30 02:12:53 27 4
gpt4 key购买 nike

我是Python初学者,对赋值运算符理解不清楚,例如:

list1 = ["Tom", "Sam", "Jim"]
list2 = list1

以上两个语句将 'list1' 和 'list2' 绑定(bind)到 ["Tom", "Sam", "Jim"],问题是,如果像下面这样的运算符:

list1[1] = "Sam's sister",如果赋值语句也被认为是绑定(bind)的,那么 list2[1] 仍然与“Sam”关联,结果是修改 list1 不会影响 list2,即使 Python 呈现相反的输出,另一个问题是 list1[1]可以看做Python中的list1list2一样的变量。

谁能有什么建议吗?

最佳答案

在您的示例中,标识符 list1list2 是对同一基础对象的引用(只是同一事物的不同名称)。

id() 可用于查看是否正在引用相同 底层对象。

>>> list1 = ["Tom", "Sam", "Jim"]
>>> list2 = list1
>>> id(list1)
44259368
>>> id(list2)
44259368

要创建已定义列表的副本,请使用 [:] 符号,或如 Matthew 提到的 deepcopy。您会注意到,完成此操作后位置/ID 已更改。

>>> list3 = list1[:]
>>> id(list3)
44280208

关于id命令:

>>> help(id)
Help on built-in function id in module __builtin__:

id(...)
id(object) -> integer

Return the identity of an object. This is guaranteed to be unique among
simultaneously existing objects. (Hint: it's the object's memory address.)

关于python - Python中列表的赋值运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12888506/

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