1.创建集合
使用函数 set()可以创建一个集合。与列表、元组、字典等数据结构不同,创建集合没有快捷方式,必须使用 set ()函数。
set ()函数最多有一个参数,如果没有参数,则会创建一个空集合。
如果有一个参数,那么参数必须是可迭代的类型,例如,字符串或列表,可迭代对象的元素将生成集合的成员。
例 5-13 创建集合:
>>> aset = set("python") #字符串作为参数创建集合
>>> bset = set([1,2,3,4]) #列表作为参数创建集合
>>> cset = set() #创建空集合
>>> aset,bset,cset
({'h', 'p', 'o', 'n', 't', 'y'}, {1, 2, 3, 4}, set())
从运行结果可以看出,集合的初始顺序和显示顺序是不同的,这表明集合中的元素是无序的。
2.集合的常用操作
Python 提供了众多内置操作集合的方法,用于向集合中添加元素、删除元素或复制集合等,常用的方法如表所示,其中,S、T为集合, x 为集合中的元素。
集合类型的方法:
方法 | 功能描述 |
---|---|
S . add ( x ) | 添加元素。如果元素 x 不在集合 S 中,将 x 增加到 S |
S . clear | 清除元素。移除 S 中的所有元素 |
S . copy() | 复制集合。返回集合 S 的一个副本 |
S . pop() | 随机集合 S 中的一个元素,并在集合中删除该元素。 S 为空时产生 KeyError 异常 |
S . discard ( x ) | 如果 x 在集合 S 中,移除该元素; x 不存在时,不报异常 |
S . remove ( x ) | 如果 x 在集合 S 中,移除该元素; x 不存在时,会产生 KeyError 异常 |
s . isdisjoint ( T ) | 判断集合中是否存在相同元素。如果集合 S 与 T 没有相同元素,则返回 True |
len ( S ) | 返回集合 S 的元素个数 |
例 5-14 集合操作的常用方法:
#创建两个集合
>>> aset = set("python")
>>> bset = set([1,2,3,5,2])
>>> cset = bset.copy()
>>> aset,bset,cset
({'h', 'p', 'o', 'n', 't', 'y'}, {1, 2, 3, 5}, {1, 2, 3, 5})
#向集合中添加元素
>>> bset.add("y")
>>> bset
{1, 2, 3, 5, 'y'}
>>> bset.pop()
1
>>> bset
{2, 3, 5, 'y'}
#判断集合中是否存在重复元素
>>> bset.isdisjoint(aset)
False
>>> len(aset)
6
>>> cset.clear()
>>> cset
set()
从运行结果可以看出,重复元素在 bset 中自动被过滤,另外,通过 add ( x )方法可以添加元素到 set 中,可以重复添加,但重复的元素不会被加入。
除表中列出的方法外,使用 in 运算符判断集合中是否存在指定元素,从而可以实现集合的遍历。
例 5-15 集合的遍历:
>>> aset = set("python")
>>> for x in aset:
print(x,end="")
hponty
集合类型主要用于3个场景:**成员关系测试、元素去重和删除数据项。**因此,如果需要对一维数据进行去重或数据重复处理时,一般可以通过集合来完成。