gpt4 book ai didi

python - 通过引用返回字典理解

转载 作者:太空宇宙 更新时间:2023-11-03 13:31:55 25 4
gpt4 key购买 nike

  • 我有以下字典:original = {a:1, b:2}
  • 然后我运行字典理解:extracted = {k:v for (k,v) in original.items() if k == 'a'}
  • 返回以下字典:{a:1}
  • 如果我改变 extracted['a'] = 2original['a'] 仍将等于 1<

问题:

有没有办法让上面的字典理解通过引用返回?例如,extracted['a'] = 2 将导致 original['a'] = 2

我不想涉及对原始字典的改动。

最佳答案

如果您的新字典是添加了所需逻辑的自定义类型:

class MappedDict(dict):
def __init__(self, orig, *args, **kwargs):
self.__orig = orig
dict.__init__(self, *args, **kwargs)
def __setitem__(self, k, v):
self.__orig[k] = v
return dict.__setitem__(self, k, v)

d = {'a': 1, 'b': 2}
md = MappedDict(d, {k: v*2 for (k,v) in d.items()})
md['a']=5

...将使 dmd 都具有 'a' 的值 5,而b 会有所不同(前者为 2,后者为 4)。

关于python - 通过引用返回字典理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45721770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com