将字典转换为命名元组或其他可哈希字典的Pythonic方式是什么?

8 浏览
0 Comments

将字典转换为命名元组或其他可哈希字典的Pythonic方式是什么?

我有一个类似于以下内容的字典:

d = {'a': 1, 'b': 2, 'c': 3, 'd': 4}

我想将其转换为一个命名元组。

我目前的方法是使用以下代码:

namedTupleConstructor = namedtuple('myNamedTuple', ' '.join(sorted(d.keys())))
nt= namedTupleConstructor(**d)

它会产生如下结果:

myNamedTuple(a=1, b=2, c=3, d=4)

这对我来说效果不错(我认为),但是是否有类似于...

nt = namedtuple.from_dict()?

更新:如评论中所讨论的那样,我之所以想将字典转换为命名元组,是为了使其成为可哈希的,但仍然可以像字典一样通用。

更新2:在我发布这个问题的4年后,TLK发布了一个新答案,推荐使用dataclass装饰器,我认为这真的很棒。我认为这是我未来会使用的方法。

0