从 namedtuple 的子集中获取字典

get a dict from subset of namedtuple

我想将 namedtuple 的子集转换成一个字典。就像下面我将 Namedtuple 作为 Const。但我想创建一个像 {'typeB':'value_typeB', 'typeC':'value_typeC'} 这样的字典。有更好的方法吗?

from collections import namedtuple
Namedtuple = namedtuple('Namedtuple', ['typeA', 'typeB', 'typeC', 'typeD'])
Const = Namedtuple(typeA='value_typeA', typeB='value_typeB', typeC='value_typeC', typeD='
a = {k: v for k, v in Const._asdict().items() if k in ['typeB', 'typeC']}
print(a)

要使用变量中的键访问值,请使用 getattr 内置函数

a = {k: getattr(Const, k) for k in ['typeB', 'typeC']}