欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  程序教程

Python集合set类型的常用操作方法

程序员文章站 2021-12-17 21:49:01
...

Python中除了字典,列表,元组还有一个非常好用的数据结构,那就是set了,灵活的运用set可以减去不少的操作。set是一个无序的元素集合,支持并、交、差及对称差等数学运算,但由于set不记录元素位置,因此不支持索引、分片等类序列的操作。那么Python集合set类型的常用操作方法有哪些呢?

Python的set类型和其他语言类似,是一个无序不重复元素集,基本功能包括关系测试和消除重复元素。集合对象还支持union(联合),intersection(交),difference(差)和sysmmetricdifference(对称差集)等数学运算。

集合的关系

Python中的集合set类型跟数学里的集合与集合的关系是一样的,都有并集、交集、差集、对称差集等。具体的代码如下:

#!/usr/bin/env python
# coding:utf-8
s1 = {11, 22, 33, "风轻情淡", "你好"}
s2 = {44, 22, 33, "风轻情淡", "hello"}
# 并集或合集,可以使用符号|
# 结果为:{33, '你好', 11, 44, 'hello', 22, '风轻情淡'}
s3 = s1.union(s2)
print(s3)
# 交集,可以使用符号&
# 结果为:{33, '风轻情淡', 22}
s4 = s1.intersection(s2)
print(s4)
# 差集或相对补集,可以使用符号-
# 结果为:{'你好', 11}
s5 = s1.difference(s2)
print(s5)
# 对称差集,可以使用符号^
# 结果为:{'你好', 11, 44, 'hello'}
s6 = s1.symmetric_difference(s2)
print(s6)

如果intersectiondifferencesymmetric_difference三个方法名加上_update,则表示对前一个集合更新所操作的方法。

集合基本操作

Python集合set类型虽然不支持索引,切片操作(因为set是无序的),但是set类型一样支持创建、添加、清空、移除、更新、拷贝(浅拷贝)等操作的。具体的代码操作及结果如下:

#!/usr/bin/env python
# coding:utf-8
# 创建、添加、清空、移除、更新、拷贝(浅拷贝)
l1 = [11, 22, 33, "风轻情淡", "你好"]
# 创建集合set类型s1
s1 = set(l1)
# 添加元素
s1.add("hello")
# 结果为:{33, '你好', '风轻情淡', 11, 22, 'hello'}
print(s1)
# 移除元素,remove和discard都是移除一个元素,后者不存在不报错,前者不存在报错
s1.remove("你好")
s1.discard("你好")
# 结果为:{33, '风轻情淡', 11, 22, 'hello'}
print(s1)
# 删除一个元素,因为set无序的,所以删除的元素不确定,集合为空将报错
s1.pop()
# 结果为:{'风轻情淡', 11, 22, 'hello'}
print(s1)
# 更新多个元素,update接收列表为更新多项
s1.update([11, '22'])
# 结果为:{'风轻情淡', 11, '22', 22, 'hello'}
print(s1)
# 拷贝一份
s2 = s1.copy()
# 结果为:{'风轻情淡', 11, '22', 22, 'hello'}
print(s2)
# 清空一个集合
s1.clear()
# 结果为:set()
print(s1)

以上就是Python中集合set类型的关系和常用操作方法了。由于set类型中的元素是不可重复的,所以在爬虫应用中用来存储已经爬取的网址列表。

相关标签: python教程