python - 如何在 Python 中创建不可变列表?

标签 python list variables

<分区>

我在程序中遇到了一些变量问题。我需要保留两个或三个版本的列表,这些版本在循环评估期间会发生变化。例如:

x=[0]  
y=[0]  
while True:
        y=x  
        x[0]+=1  
        print (y,x)    
        input()

当我按下 Enter 它显示 [1] [1]; [2] [2]; [3] [3]... 但我需要将列表的先前状态保存在变量中:[0] [1]; [1] [2]; [2] [3] ...

代码应该是什么?

最佳答案

您需要复制值而不是引用,您可以这样做:

y=x[:]

相反

y = x

您也可以使用复制库:

import copy
new_list = copy.copy(old_list)

如果列表包含对象并且您也想复制它们,请使用通用的 copy.deepcopy()

new_list = copy.deepcopy(old_list)

在 python 3.x 中你可以这样做:

newlist = old_list.copy()

你也可以在丑陋的模式下做:)

new_list = list(''.join(my_list))

关于python - 如何在 Python 中创建不可变列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41874769/

相关文章:

python - 如何让 urllib2 以数组形式返回数据

python - 如何将所有列表元素添加到另一个列表中

variables - 如何在 NAnt 脚本中使用系统变量?

javascript - 全局常量可以在 JavaScript 中声明吗?

python - time.sleep 需要整数?

python - 根据列表中的元组排列人员

python - py.test - 在不同目录中收集 2 个 conftest.py 时出错

python - 在 SciPy 中使用 Sympy 变量最小化函数?

python - 如何使用 Python 的 Pandas 从多列中创建一个列表?

jQuery:获取标题和 href 值作为变量