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

Immutable hashable list with correct typings

我需要使用项目序列作为字典键并完成 List[...] 类型。如果我使用 tuple,那么它不会成为 List[...] 类型并且我不能使用 Tuple[...] 类型,因为元组长度未知。

是否有任何 class(可能来自第 3 方包)类似于可哈希冻结列表?

List[T] 的不变等价物是 Tuple[T, ...]

来自Python documentation

To specify a variable-length tuple of homogeneous type, use literal ellipsis, e.g. Tuple[int, ...]. A plain Tuple is equivalent to Tuple[Any, ...], and in turn to 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