OrderedDict comprehensions

6 浏览
0 Comments

OrderedDict comprehensions

我能否扩展Python中的字典推导语法以适用于其他字典,比如collections模块中的OrderedDict或者我自己从dict继承的类型?

重新绑定dict名称显然是不起作用的,{key: value}推导语法仍然会给你一个普通的dict用于推导和字面值。

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

所以,如果可能的话,我该如何做到这一点?如果只在CPython中有效也可以。对于语法,我猜我会尝试使用类似于O{k: v}前缀,就像我们在r'various' u'string' b'objects'中使用的那样。

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

0