具有正确类型的不可变哈希列表

问题描述

我需要使用项目序列作为dict键并壮举List[...]类型。如果我使用tuple,那么它就不适合List[...]类型,并且我不能使用Tuple[...]类型,因为元组长度未知。

是否有任何类(可能来自第三方包装)类似于可散列的冻结列表?

解决方法

List[T]不变的是Tuple[T,...]

来自Python documentation

要指定同构类型的可变长度元组,请使用文字省略号,例如Tuple[int,...]。普通的Tuple等效于Tuple[Any,...],等效于tuple

,

frozenlist软件包似乎需要功能

    def __hash__(self):
        if self._frozen:
            return hash(tuple(self))
        else:
            raise RuntimeError("Cannot hash unfrozen list.")

但是此代码未包含在任何发行版中(当时是1.0.0和1.0.0a0)。检查情况是否会得到改善。这是我创建的issue