2024-04-26 18:30:59 发布
网友
假设我有这样的代码:list1 = [1,2,3]。 假设我们在索引0中插入4,list1 = [4,1,2,3]。 有没有办法回溯索引0的“历史”呢?这是我问题的简化版本,但是想象一下许多不同的事情发生了变化list1。你知道吗
list1 = [1,2,3]
list1 = [4,1,2,3]
list1
你要的是persistent data structure。Python列表是可变的,并且不存储任何类型的历史(这是一件好事,因为开销会很高,而且通常不需要)。你知道吗
根据您实际要做的事情,您可能可以简单地创建新的列表,而不是改变现有的列表。例如,而不是:
ls = [1, 2, 3] ls.insert(0, 4)
创建新列表:
ls = [1, 2, 3] ls2 = [4] + ls
这将保留ls,并允许您将其与ls2进行比较。你知道吗
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}
你要的是persistent data structure。Python列表是可变的,并且不存储任何类型的历史(这是一件好事,因为开销会很高,而且通常不需要)。你知道吗
根据您实际要做的事情,您可能可以简单地创建新的列表,而不是改变现有的列表。例如,而不是:
创建新列表:
这将保留
ls
,并允许您将其与ls2
进行比较。你知道吗正如cᴏʟᴅsᴘᴇᴇᴅ建议的那样,您还可以实现自己的列表式结构,将其历史记录在日志中。这不会太复杂,但我建议先研究其他选项(并验证这是really what you need),这在实践中不是很常见的事情。你知道吗
为什么不为列表创建一个哈希表,以便稍后检查索引的历史记录:
输出:
相关问题 更多 >
编程相关推荐