python - 我怎样才能根据值(value)而不是内存使 x=y ?

标签 python

我需要一些帮助来理解这段代码:

x = [1,2,3]
y = [4,5,6]
x = y
print x
print y
y.remove(4)
print x
print y  

当我从列表 [4,5,6] 中删除 4 时,xy 变量将指向内存中相同的 [5,6] 列表,对吗?
如果是这样,那么我怎样才能使 x 等于 y 列表的副本,以便 xy两者都指向内存中的不同位置,但这些位置都具有相同的值? (与它们都指向内存中的同一个位置相反,如上所示)

最佳答案

特别是对于列表,您可以通过获取整个列表的一部分来进行浅拷贝:

x = y[:]

这不能保证适用于任意可切片对象(例如,numpy 数组切片不会创建新数组),因此使用内置的 copy 会很有用。模块:

import copy
x = copy.copy(y)

可以预期对任意 y 起作用。

关于python - 我怎样才能根据值(value)而不是内存使 x=y ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16756970/

相关文章:

javascript - Django JavaScript 下拉菜单

python - 缺少 PyQt QML 错误控制台

python - 有效地将来自 json 对象的字符串附加到一个条件上?

c# - 将字节作为参数传递给 c#?

python - 使用Python pptx获取图像文件名

python - 检查单词是否在 NLTK 同义词集中的最快方法?

python - 我如何删除 python 2.7,因为我已经在 ubuntu 上安装了 3.6.5?

python - 如何跳过结果中的 ORM 开销?

python 有 glob 仅返回 5 个最近的文件匹配

python - 如何指定 bash 环境以使用 Python 的 Numeric 模块?