You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何将列表各操作步骤的状态存储到二维列表?

如何将列表的历次操作状态存储到二维列表中

这事儿其实很好解决,核心思路就是用一个二维列表来记录每次操作后的path状态,但要注意一个关键点:必须存储列表的副本,而不是直接存原列表的引用(不然后续修改path时,之前的历史记录也会跟着变,就乱套了)。

下面直接给你对应的Python实现步骤,完全贴合你的需求:

步骤1:初始化基础变量

先创建原始的path列表,再初始化一个空的二维列表path_history用来存所有状态:

# 初始化原始路径列表
path = [2, 1, 3, 0]
# 初始化存储历史状态的二维列表
path_history = []

步骤2:保存初始状态

先把最开始的path状态存进去,这里要用path.copy()或者list(path)来创建副本:

# 保存初始状态
path_history.append(path.copy())

步骤3:依次执行操作并保存状态

按照你的操作顺序,每执行一次操作后,就把当前path的副本存入path_history:

# 第一次执行path.pop(),然后保存状态
path.pop()
path_history.append(path.copy())

# 第二次执行path.pop(),然后保存状态
path.pop()
path_history.append(path.copy())

# 执行path.append(9),然后保存状态
path.append(9)
path_history.append(path.copy())

# 执行path.append(5),然后保存状态
path.append(5)
path_history.append(path.copy())

验证结果

现在你打印path_history,就能得到所有操作的状态记录了:

print(path_history)
# 输出结果:[[2, 1, 3, 0], [2, 1, 3], [2, 1], [2, 1, 9], [2, 1, 9, 5]]

为什么要用copy()?

因为Python里的列表是可变对象,如果直接path_history.append(path),其实是把原列表的内存地址存进了二维列表。后续修改path时,所有历史条目都会指向同一个列表,导致之前的记录被覆盖。用copy()就能创建一个独立的新列表,保证每个历史状态都是固定不变的。

内容的提问来源于stack exchange,提问作者sphoenix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:57:22