微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决具有正确类型的不可变哈希列表

我需要使用项目序列作为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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。