gpt4 book ai didi

复制没有不同属性的字典的 Pythonic 方式

转载 作者:行者123 更新时间:2023-12-03 01:26:05 32 4
gpt4 key购买 nike

在 ECMAScript6 中,您可以使用扩展运算符来解构这样的对象

const {a, ...rest} = obj;

它将 obj 浅拷贝到 rest,不带属性 a

有没有一种干净的方法可以在 python 中执行相同的操作?

最佳答案

Python 字典文字可以使用解包运算符,例如 { **obj, 'a': 3 } 来制作覆盖某些特定属性的浅拷贝,但没有特殊的语法来省略 a拆包后的属性(property)。此外,虽然 python 可以解构序列和嵌套序列,但您不能在解构赋值的左侧使用字典模式。

但是,可以使用字典理解来更详细地执行此操作:

rest = { k: v for k, v in obj.items() if k != 'a' }

但为了可读性,两行可能更好:

rest = dict(obj)
rest.pop('a', None)

或者,如果您希望键 'a' 始终出现在原始字典中,并且希望在丢失时出现 KeyError,则可以使用 删除:

rest = dict(obj)
del rest['a']

关于复制没有不同属性的字典的 Pythonic 方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58802152/

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