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)
如果intersection
、difference
、symmetric_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类型中的元素是不可重复的,所以在爬虫应用中用来存储已经爬取的网址列表。
上一篇: 万网M3虚拟主机开启Gzip压缩加速
下一篇: 新手织梦仿站入门需要学习的知识点