collections.abc.Collection是否具备Set那样的唯一性属性?
关于collections.abc.Collection的元素唯一性问题
collections.abc.Collection是Python的抽象基类,它不具备强制的元素唯一性属性,完全允许子类容器存在重复值。
原因很简单:Collection只是定义了所有容器类型的通用接口规范(比如必须实现__contains__、__iter__、__len__这三个核心方法),至于元素是否允许重复,是由它的具体子类来决定的:
- 像
collections.abc.Set(以及它的实现类set、frozenset)这类子类,会强制元素唯一性; - 而
list、tuple同样属于Collection的子类,它们不仅允许重复元素,甚至很多场景下就是用来存储重复元素的。
所以总结:Collection本身不对元素重复做限制,是否允许重复完全看具体使用的子类容器类型。
内容的提问来源于stack exchange,提问作者Intrastellar Explorer
相关产品推荐
相关产品推荐

