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

2024-04-26 18:30:59 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有这样的代码:list1 = [1,2,3]。 假设我们在索引0中插入4,list1 = [4,1,2,3]。 有没有办法回溯索引0的“历史”呢?这是我问题的简化版本,但是想象一下许多不同的事情发生了变化list1。你知道吗


Tags: 代码版本历史事情想象办法list1
2条回答

你要的是persistent data structure。Python列表是可变的,并且不存储任何类型的历史(这是一件好事,因为开销会很高,而且通常不需要)。你知道吗

根据您实际要做的事情,您可能可以简单地创建新的列表,而不是改变现有的列表。例如,而不是:

ls = [1, 2, 3]
ls.insert(0, 4)

创建新列表:

ls = [1, 2, 3]
ls2 = [4] + ls

这将保留ls,并允许您将其与ls2进行比较。你知道吗

正如cᴏʟᴅsᴘᴇᴇᴅ建议的那样,您还可以实现自己的列表式结构,将其历史记录在日志中。这不会太复杂,但我建议先研究其他选项(并验证这是really what you need),这在实践中不是很常见的事情。你知道吗

为什么不为列表创建一个哈希表,以便稍后检查索引的历史记录:

list1 = [1,2,3]
hash_table={i:j for i,j in enumerate(list1)}
print(hash_table)

输出:

{0: 1, 1: 2, 2: 3}

相关问题 更多 >