文件名称:集合操作符和关系符号-qt教学大纲
文件大小:5.26MB
文件格式:PDF
更新时间:2024-06-23 19:46:24
python 核心编程 中文版 高清文字版
7.6 集合类型 数学上, 把 set 称做由不同的元素组成的集合,集合(set)的成员通常被称做集合元素(set elements)。Python 把这个概念引入到它的集合类型对象里。集合对象是一组无序排列的可哈希的值。 是的,集合成员可以做字典中的键。数学集合转为Python的集合对象很有效,集合关系测试和union、 intersection 等操作符在 Python 里也同样如我们所预想地那样工作。 和其他容器类型一样,集合支持用 in 和 not in 操作符检查成员, 由 len() 内建函数得到集 合的基数(大小), 用 for 循环迭代集合的成员。但是因为集合本身是无序的,你不可以为集合创建 索引或执行切片(slice)操作,也没有键(keys)可用来获取集合中元素的值。 集合(sets)有两种不同的类型,可变集合(set) 和 不可变集合(frozenset)。如你所想,对可 变集合(set),你可以添加和删除元素,对 不可变集合(frozenset)则不允许这样做。请注意,可变 集合(set)不是可哈希的,因此既不能用做字典的键也不能做其他集合中的元素。不可变集合 (frozenset)则正好相反,即,他们有哈希值,能被用做字典的键或是作为集合中的一个成员。 集合(Sets) 早出现在 Python2.3 版本中,通过集合(sets)模块来创建,并通过 ImmutableSet 类和 Set 类进行访问。而后来,大家都认为把它们作为内建的数据类型是个更好的主意,因此这些 类被用 C重写改进后包含进 Python2.4。关于集合类型和这些类改进的更多内容,可阅读此文获得详 情:PEP 218,链接地址: http://python.org/peps/pep-0218.html. 虽然现在集合类型已经是 Python 的基本数据类型了,但它经常会以用户自定义类的形式出现在 各种 Python 程序中,就像复数一样(复数从 Python1.4 版本起成为 python 的一个数据类型),这样 重复的劳动已数不胜数了。在现在的 Python 版本之前,(即使集合类型对许多人的程序来说并不是 理想的数据结构,)许多人仍然试图给列表和字典这样的 Python 标准类型添加集合功能,这样可 以把它们作为真正集合类型的代理来使用。因此现在的使用者有包括“真正”集合类型在内的多种 选择。 在我们详细讲述Python的集合对象之前,我们必须理解Python中的一些数学符号 (见表7.3), 这样对术语和功能有一个清晰的了解。 表 7.3 集合操作符和关系符号