python - 尝试在 Python 2 中复制列表并修改它的一个版本

标签 python list variables indexing python-2.x

我想复制一个列表并修改副本,但是当我尝试这样做时,我最终也修改了原始列表。

我的问题的高度简化版本:

list = [2,3,6,8,9,6,7,4,56,8,9,6,7,8]

new_list = list

new_list[2] = 'n'

print list
print new_list

我只想更改新列表的第 2 项,但是当我尝试此操作时,新列表和旧列表都更改为:

[2,3,'n',8,9,6,7,4,56,8,9,6,7,8]

我在这里缺少一些非常基本的东西吗?

如果我将列表中的每个项目逐一添加到下一个列表中,我可以让它执行我想要的操作:

list = [2,3,6,8,9,6,7,4,56,8,9,6,7,8]

new_list = []

for item in list:
    new_list.append(item)

new_list[2] = 'n'

print list
print new_list

如果我这样做,只有new_list改变,但有没有更直接的方法?

最佳答案

要制作列表的新副本,请尝试:

newList = list(oldList)

或者通过切片更加神秘简洁:

newlist = oldList[:]

只需分配 oldListnewList 将导致两个名称指向同一个对象,如下所示:

http://henry.precheur.org/python/copy_list

通用对象复制功能由copy module提供。 。 (图片取自:http://henry.precheur.org/python/copy_list)。

关于python - 尝试在 Python 2 中复制列表并修改它的一个版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7050562/

相关文章:

python - 检查列表理解中列表的长度(基于列表理解中元素的计数迭代)

Javascript::使用变量作为对象 ID 和属性的字符串;

variables - 在集合中找不到 SSIS 元素(但我已将它们全部列出!)

python - 在 MongoEngine 查询中获取引用对象的数据,而不仅仅是 id

r - 使用 data.frames 列表中的特定行创建 data.frames 列表

python - 使用 WinPython 作为 PyCharm 的解释器

list - 如何验证列表是否已排序?

ruby-on-rails - 在我的 View 中使用 session 变量

python - 如何使用 Python 将 Gaia 天体测量数据绘制为 TESS 图像?

python - 如何安装适用于 Python 3.4 的 RoboBrowser