我有一长串的状态,它们是按顺序遍历的。 遍历一个状态意味着生成一个新状态,作为现有状态的替换。 经过少量的遍历,我得出结论要么成功要么失败。 如果成功,那么我的新列表是列表顶部的修改状态,而所有未遍历的元素不变。 如果我认为失败了,我只返回原来的列表。也就是说,我通过丢弃更改来“撤消”。你知道吗
成功的例子可以通过将我的新状态列表与原始列表的一部分连接起来来完成。但是,如果我理解正确的话,切片会做浅拷贝。这似乎是一个不必要的费用为一长串。如果我有一个链表,我想我可以以非常低的成本做到这一点。你知道吗
我应该在python中将其实现为链表吗?[因为如果需要修改列表,可以通过更改指针将列表头部的元素简单地添加到未修改的尾部,而不必复制列表,这在Python列表中是不可避免的]
编辑 迭代器似乎是一个很好的Python解决方案。请看下面我的答案。 显然,这个要求是一个retroactive data structure
如果您希望只遍历少数项,那么一旦知道结果,就可以将新项覆盖到旧列表上。你知道吗
用法:
some_states
是原始列表或替换了前几个项的同一列表。你知道吗假设iter()的成本很便宜,我认为这段代码在python中显示了一个很好的解决方案。你知道吗
相关问题 更多 >
编程相关推荐