python3 set类型的使用
1. 基础知识
(1)
集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。集合是一个无序的不重复元素序列
。
(2)
基本功能是进行成员关系测试和删除重复元素。
(3)
可以使用大括号{ }或者set()创建集合
。注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典
。
(4)
自动去重。集合中是不允许存在相同的元素的
。
sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu', 'Baidu'}
print(sites) # 自动去重
(5)
成员资格运算符
sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu', 'Baidu'}
if 'Google' in sites:
print("Google在集合中.")
else:
print("Google不在集合中.")
2. 集合之间的运算
根据高中集合中所学知识,集合之间存在一定的运算,此处不再赘述。
集合间存在并集(|
),差集(-
),交集(&
),对称差集(^
)。
set1= set("abcd")
set2= set("cdef")
print(set1 | set2) # 集合set1和集合set2所有的元素
print(set1 - set2) # 集合set1中包含而集合set2中不包含的元素
print(set1 & set2) # 集合set1和集合set2共有的元素
print(set1 ^ set2) # 取集合set1和set2中 不属于 set1&set2的元素
3. 集合的基本操作
(1)
添加元素
[a]
. set.add()方法
sites = {'Google', 'Taobao'}
print('添加前:> ', sites)
sites.add("ZhiHu")
sites.add("ZhiHu") # 如果元素已经存在, 则不进行任何操作
print('添加后:> ', sites)
[b]
. set.update(x)方法
也可以用来向集合中添加元素, 且参数可以是列表,元组,字典等
。
sites = {'Google', 'Taobao'}
print('添加前:> ', sites)
sites.update([1,3], ["good", "bad"])
print('添加后:> ', sites)
(2)
删除元素
[a]
. set.remove(elem)方法
将元素elem从集合set中删除,如果元素elem不存在,将发生报错
。
sites = {'Google', 'Taobao'}
sites.remove('Google') # 移除元素Google,正确
print('移除后:> ', sites)
sites.remove('BaiDu') # 错误, 因为集合中没有BaiDu元素
[b]
. set.discard(elem)方法
此方法也可以移除集合中的元素,且如果元素不存在,不会发生错误
。
sites = {'Google', 'Taobao'}
sites.discard('Google')
print('移除后:> ', sites)
sites.discard('BaiDu') # 即使不存在BaiDu元素, 此处也不会报错, 只是默默地失败
[c]
. set.pop()方法
可以从集合中随机的删除一个元素
。
set 集合的 pop 方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。
# 可以多次运行该程序, 会发现每次运行结果不尽相同
sites = {'Google', 'Taobao', "BaiDu", "ZhiHu"}
print(sites.pop())
(3)
清空集合
set.clear(),就是将这个集合置空。
sites = {'Google', 'Taobao', "BaiDu", "ZhiHu"}
sites.clear()
print(sites)
(5)
计算集合元素个数
sites = {'Google', 'Taobao', "BaiDu", "ZhiHu"}
print(len(sites))
(6)
成员运算符
格式:elem in
set
sites = {'Google', 'Taobao', "BaiDu", "ZhiHu"}
print('Google' in sites)
print('JiDong' in sites)
4. 集合内置方法完整列表
add():向集合中追加一个元素
clear():清空整个集合中的元素
copy():拷贝一个集合
pop():随机集合中的元素
。。。。
更多API接口请参考官方接口文档。