首页 > 编程笔记 > Python笔记 阅读:10

Python Set集合的用法(附带实例)

Python 中的集合(Set)用于保存不重复的元素,集合中的元素必须唯一。

集合的表示方法与字典类似,格式为:
{element1, element2, ..., elementn}
集合中的元素是无序的。每次输出集合元素时,元素的顺序可能不同。

下面创建集合。输入代码:
cloudy = {83, 91, 92, 97}
print(cloudy)
运行结果为:

{97, 83, 91, 92}


此外,可使用 set() 函数创建集合。输入代码:
cloudy = set((83, 91, 92, 97))
print(cloudy)
运行结果为:

{97, 91, 83, 92}


当集合元素重复时,重复的元素只显示一次。输入代码:
cloudy = set((83, 91, 83, 97))
print(cloudy)
运行结果为:

{97, 91, 83}

集合元素 83 重复了两次,在输出集合时,元素 83 只显示一次。

Python访问集合元素

因为集合元素是无序的,所以无法像列表一样使用索引访问集合元素。通常,可使用 for 循环访问集合元素。

输入代码:
cloudy = set(((83, 91, 83, 97, 98))
for angel in cloudy:
    print(angel, end=',')
运行结果为:

97,91,83,98

Python添加集合元素

我们通常使用 add() 函数添加集合元素。输入代码:
cloudy = set(((83, 91, 97, 98))
cloudy.add(66)
print(cloudy)
运行结果为:

{97, 66, 98, 83, 91}

使用 add() 函数添加元素 66 后,输出集合。元素 66 在所有元素的第二位,可见在增加集合元素时,元素的添加顺序是无序的。

Python插入集合元素

插入集合元素是指在原来的集合中,使用 update() 方法插入新的元素。

输入代码:
cloudy = set((83, 91, 97, 98))
cloudy.update((66, 77, 88, 90))
print(cloudy)
运行结果为:

{97, 66, 98, 77, 83, 88, 90, 91}

Python删除集合

1) del关键字

我们通常使用 del 关键字删除集合。输入代码:
cloudy = set((83, 91, 97, 98))
del cloudy
print(cloudy)
运行程序会报错。使用 del 关键字删除集合后,再访问集合时将导致 NameError 错误,这证明我们成功删除了集合。

2) clear()函数

与使用 del 关键字删除集合不同,clear() 函数只删除集合元素,会保留集合的变量名,即将原来的集合变为空集合。

输入代码:
cloudy = set((83, 91, 97, 98))
cloudy.clear()
print(cloudy)
运行结果为:

set()

由此可见,使用 clear() 函数会删除集合元素,同时保留集合的变量名,并返回一个空的集合。

3) remove()函数

remove()函数可删除集合的指定元素。如果指定的元素不在集合中,则会报错。

输入代码:
cloudy = set((83, 91, 97, 98))
cloudy.remove(83)
print(cloudy)
运行结果为:

{97, 91, 98}

从运行结果不难看出,成功将元素 83 从集合中删除。

如果集合元素中不包含 85,要删除集合元素 85 时,则会报错。输入代码:
cloudy = set((83, 91, 97, 98))
cloudy.remove(85)
print(cloudy)
由于集合中不包含元素 85,使用 remove() 函数删除元素 85 时会报 KeyError 错误。

4) discard()函数

与 remove() 函数相似,discard() 函数可删除集合的指定元素,并显示剩余元素。使用 discard() 函数删除集合元素时,若删除的元素不在集合中,也不会报错。

下面使用 discard() 函数删除集合元素 83。输入代码:
cloudy = set((83, 91, 97, 98))
cloudy.discard(83)
print(cloudy)
运行结果为:

{97, 91, 98}


下面使用 discard() 函数删除集合中不存在的元素。输入代码:
cloudy = set((83, 91, 97, 98))
cloudy.discard(85)
print(cloudy)
运行结果为:

{97, 91, 83, 98}

集合中不包含元素 85,discard() 函数无法删除指定元素 85,也不报错误,直接显示元素 97、91、83、98。

相关文章