gpt4 book ai didi

python - OrderedDict 推导式

转载 作者:IT老高 更新时间:2023-10-28 20:22:05 28 4
gpt4 key购买 nike

我可以在 python 中扩展语法以对其他字典进行字典理解,例如 collections 模块中的 OrderedDict 或我自己的继承自 dict 的类型吗?

仅仅重新绑定(bind) dict 名称显然是行不通的,{key: value} 理解语法仍然为您提供了一个普通的旧字典,用于理解和文字。

>>> from collections import OrderedDict
>>> olddict, dict = dict, OrderedDict
>>> {i: i*i for i in range(3)}.__class__
<type 'dict'>

那么,如果可能的话,我会怎么做呢?如果它只适用于 CPython 就可以了。对于语法,我想我会尝试使用 O{k: v} 前缀,就像我们在 r'various' u'string' b'objects' 上使用的那样。

注意:当然我们可以使用生成器表达式来代替,但我更感兴趣的是看看 python 在语法方面的可破解性。

最佳答案

对不起,不可能。字典文字和字典推导映射到内置的字典类型,以一种在 C 级别硬编码的方式。这不能被覆盖。

不过,您可以使用它作为替代方案:

OrderedDict((i, i * i) for i in range(3))

附录:从 Python 3.6 开始,所有 Python 字典都是有序的。 As of 3.7 ,它甚至是语言规范的一部分。如果您使用的是这些版本的 Python,则无需 OrderedDict:dict 理解将 Just Work (TM)。

关于python - OrderedDict 推导式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21103732/

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