我正在寻找一种方法来创建一个字典的多个临时副本来保存一些“进化状态”,只需稍微改变一下代际关系,我发现了这个小原型dict:
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
基本上我想要smth。比如:
^{pr2}$等等。在
我想知道,如果这个类的作者和我遗漏了什么,因为我无法想象,没有标准的库方法来处理这个问题。但集合和itertools似乎都没有提供类似的简单方法。在
这样的事情能用吗itertools.tee?在
更新: 这不是一个复制和更新的问题,因为,这正是这个ptdict正在做的。但是使用update不会返回dict,ptdict会这样做,所以我可以例如链接结果或进行就地测试,这将大大提高可读性。(我提供的示例可能有点微不足道,但我不想与大矩阵混淆。)
我为不够精确而道歉。也许下面的例子说明了我为什么对只需一个复制/更新步骤就可以得到一个字典的原因:
nextgen = nextgen.mutate(inject_mutagen("A")) if nextgen.mutate(inject_mutagen("A")).get("alive") else nextgen.mutate(inject_mutagen("C"))
我猜你在找这样的东西:
见^{}
无需自定义类型,您可以立即执行此操作。只需使用
dict
,而不是:做这样的事情:
^{pr2}$如果没有嵌套字典,也不需要深度复制而不是简单复制,那么这就足够了。在
复制模块包含浅拷贝和深拷贝功能。在
相关问题 更多 >
编程相关推荐