如何在列表中查找索引的历史记录?

时间:2018-03-28 23:58:01

标签: python list history

所以我要说这段代码:list1 = [1,2,3]。 所以我们假设我们在索引0 list1 = [4,1,2,3]中插入4。 有没有办法去回复并找到"历史"索引0中的内容是什么?这是我的问题的简化版本,但是想象一下,改变list1会发生许多不同的事情。

2 个答案:

答案 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}