1、集合的定义
集合不重复(去重),无序
s = set()
print(type(s),s)
s1 = {1,2,3}#不能定义空集合
print(type(s1),s1)
结果
<class 'set'> set()
<class 'set'> {1, 2, 3}
字符串转集合,重复的不打印,没有顺序
s2 = set("hello")
print(type(s2),s2)
结果
<class 'set'> {'h', 'e', 'o', 'l'}
列表转集合,重复的不打印,没有顺序
s3 = set([1,2,2,3,4])
print(type(s3),s3)
结果
<class 'set'> {1, 2, 3, 4}
字典转集合,键转集合,值丢失
s4 = set({"name":1,"age":2})
print(type(s4),s4)
结果
<class 'set'> {'name', 'age'}
元组转集合
s5 = set((1,2,3,3,4))
print(type(s5),s5)
结果
<class 'set'> {1, 2, 3, 4}
集合只能存放不可变类型
s = {3.14,"hello",False,True,None,(1,2,3)}
print(s)
结果
{False, True, 3.14, 'hello', (1, 2, 3), None}
集合只有一种遍历
s = {3.14,"hello",False,True,None,(1,2,3)}
for i in s:
print(i)
结果
False
True
3.14
hello
(1, 2, 3)
None
集合可以使用len和in
s = {1,2,2,3,3,4}#不包括重复的
print(len(s))#4
print(5 in s,3 in s)#False True
结果
4
False True
2、集合的操作
add 将元素添加到集合中
s = {1,2,3,4}
s.add(5)
print(s)
结果
{1, 2, 3, 4, 5}
update 合并一个新的集合到原来的集合中
s = {1,2,3,4}
s.update({3,4,5})
print(s)
结果
{1, 2, 3, 4, 5}
pop 删除随机一个数
s = {1,2,3,4}
print(s.pop())
结果
1
remove删除指定的数,删除的数不存在会报错
s = {1,2,3,4}
s.remove(2)
print(s)
结果
{1, 3, 4}
discard 删除指定的元素,不存在不会报错
s = {1,2,3,4}
s.discard(4)
print(s)
结果
{1, 2, 3}
clear 清空集合,输出set()
s = {1,2,3,4}
s.clear()
print(s)
结果
set()
intersection 交集
s = {1,2,3,4}
s1 = {2,3,4,5}
print(s.intersection(s1))
结果
{2, 3, 4}
union 并集
s = {1,2,3,4}
s1 = {2,3,4,5}
print(s.union(s1))
结果
{1, 2, 3, 4, 5}
difference s1 有 ,s 没有
s = {1,2,3,4}
s1 = {2,3,4,5}
print(s1.difference(s))
结果
{5}
issubset 判断一个集合是否是另一个集合的子集的方法
s = {1,2,3,4}
s1 = {2,3,4,}
print(s1.issubset(s))#s1是不是s的子集 True
结果
True
issuperset 判断一个集合是否是另一个集合的超集的方法,如果一个集合包含另一个集合的所有元素,则可以说这个集合是另一个集合的超集。
s = {1,2,3,4}
s1 = {2,3,4,}
print(s.issuperset(s1))
结果
True
intersection_update ,s 中的元素将会被更新为与 s1、s2等集合中的元素的交集
s = {1,2,3,4}
s1 = {2,3,4,}
s2 = {3,4,5}
s.intersection_update(s1,s2)
print(s)
结果
{3, 4}
symmetric_difference 用于返回两个集合中不重复元素的集合的方法
s = {1,2,3,4}
s1 = {2,3,4,}
s2 = {3,4,5}
print(s.symmetric_difference(s1))
结果
{1}
difference_update s 被更新为只包含与 s1 中不重复的元素 {1, 2}。而不返回新的集合
与difference不同 difference 取差值,返回差值;difference_update 取差值并更新为新的集合不返回差值
s = {1,2,3,4}
s1 = {2,3,4,}
s2 = {3,4,5}
s.difference_update(s1)
print(s)
结果
{1}