所以我要说这段代码:list1 = [1,2,3]
。
所以我们假设我们在索引0 list1 = [4,1,2,3]
中插入4。
有没有办法去回复并找到"历史"索引0中的内容是什么?这是我的问题的简化版本,但是想象一下,改变list1
会发生许多不同的事情。
答案 0 :(得分:2)
你要的是persistent data structure。 Python列表是 mutable ,并且不存储任何类型的历史记录(这是一件好事,因为开销非常高,通常不需要)。
根据您实际尝试的操作,您可能只需创建新列表,而不是改变现有列表。例如,而不是:
ls = [1, 2, 3]
ls.insert(0, 4)
创建新列表:
ls = [1, 2, 3]
ls2 = [4] + ls
这会保留ls
并允许您将其与ls2
进行比较。
正如cᴏʟᴅsᴘᴇᴇᴅ建议您也可以实现自己的类似列表的结构,在日记中记录其历史记录。这不会太复杂,但我建议首先考虑其他选项(并验证这是really what you need),这在实践中并不常见。
答案 1 :(得分:1)
为什么不为列表创建哈希表,以便稍后查看索引的历史记录:
list1 = [1,2,3]
hash_table={i:j for i,j in enumerate(list1)}
print(hash_table)
输出:
{0: 1, 1: 2, 2: 3}