set(集合)类型
(参考教程 5.4 节,标准库手册 4.9 节)

set 是一种复合数据类型。set 对象有下面几个特点:

  • 其元素只能是不可变对象,而且可以相互比较是否相等

  • 其中的元素互不相等,没有重复元素

  • 元素之间没有顺序关系
注意,list 的情况完全不同:对元素没有任何限制,元素排列有顺序而且允许重复。

可以用一对花括号直接构造集合,其中可以列出任意多个表达式,用逗号分隔。也可以用 set(...) 函数基于其他序列类型的对象构造出一个集合。set() 得到空集合(注意,{} 得到的不是空集,而是后面介绍的空字典)。

set 不是序列,但它也支持一些与序列相同的操作和用法。在下面说明中 s 是集合,x 是一般对象:

  • x in s,x not in s

  • len(s) 得到 s 的元素个数

  • 可以用集合作为 for 语句中循环变量的取值源,如写 for x in s : ...。但请注意,这里在循环迭代中选取元素的顺序由系统内部定义。
set 是可变类型,支持加入元素和删除元素等变动操作。另外有一个类型 frozenset,是集合的非变动版本,支持除变动操作之外的其他集合操作。

set 和 frozenset 有很多可用的操作,set 还有许多变动性操作。有关情况见标准库手册 4.9 节。

例如:set("abbcdf") 将得到字符集合 {'b', 'c', 'a', 'f', 'd'}。

本页及相关页面(除另声明者外)由裘宗燕创建维护,可自由用于各种学习活动。其他使用需得到作者许可。