具有正确类型的不可变哈希列表
Immutable hashable list with correct typings
我需要使用项目序列作为字典键并完成 List[...]
类型。如果我使用 tuple
,那么它不会成为 List[...]
类型并且我不能使用 Tuple[...]
类型,因为元组长度未知。
是否有任何 class(可能来自第 3 方包)类似于可哈希冻结列表?
List[T]
的不变等价物是 Tuple[T, ...]
。
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。
我需要使用项目序列作为字典键并完成 List[...]
类型。如果我使用 tuple
,那么它不会成为 List[...]
类型并且我不能使用 Tuple[...]
类型,因为元组长度未知。
是否有任何 class(可能来自第 3 方包)类似于可哈希冻结列表?
List[T]
的不变等价物是 Tuple[T, ...]
。
To specify a variable-length tuple of homogeneous type, use literal ellipsis, e.g.
Tuple[int, ...]
. A plainTuple
is equivalent toTuple[Any, ...]
, and in turn totuple
.
看来 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。