回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在寻找一种方法来创建一个字典的多个临时副本来保存一些“进化状态”,只需稍微改变一下代际关系,我发现了这个小原型dict:</p>
<pre><code>class ptdict(dict):
def asprototype(self, arg=None, **kwargs):
clone = self.__class__(self.copy())
if isinstance(arg, (dict, ptdict)):
clone.update(arg)
clone.update(self.__class__(kwargs))
return clone
</code></pre>
<p>基本上我想要smth。比如:</p>
^{pr2}$
<p>等等。在</p>
<p>我想知道,如果这个类的作者和我遗漏了什么,因为我无法想象,没有标准的库方法来处理这个问题。但集合和itertools似乎都没有提供类似的简单方法。在</p>
<p>这样的事情能用吗itertools.tee?在</p>
<p><strong>更新</strong>:
这不是一个复制和更新的问题,因为,这正是这个ptdict正在做的。但是使用update不会返回dict,ptdict会这样做,所以我可以例如链接结果或进行就地测试,这将大大提高可读性。(我提供的示例可能有点微不足道,但我不想与大矩阵混淆。)</p>
<p>我为不够精确而道歉。也许下面的例子说明了我为什么对只需一个复制/更新步骤就可以得到一个字典的原因:</p>
<pre><code>nextgen = nextgen.mutate(inject_mutagen("A")) if nextgen.mutate(inject_mutagen("A")).get("alive") else nextgen.mutate(inject_mutagen("C"))
</code></pre>