总目录:https://www.jianshu.com/p/e406a9bc93a9
Python - 子目录:https://www.jianshu.com/p/50b432cb9460
集合
集合(set)是一个无序的不重复元素序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
创建格式:
parame={value01,value02,...}
或者
set(value) #这里value不能是纯数字
基础运算
basket= {'apple','orange','apple','pear','orange','banana'}
print(basket) # 这里演示的是去重功能
{'orange','banana','pear','apple'}
print('orange' in basket) # 快速判断元素是否在集合内
True
print('crabgrass' in basket)
False
# 两个集合的符号运算
a=set('abracadabra')
b=set('alacazam')
print(a)
{'a','r','b','c','d'}
print(b)
{'a','l','c','z','m'}
print(a-b) # a中有,b中没有的元素 (a的差集)
{'r','d','b'}
print(a|b) # a和b所有的不重复元素 (并集)
{'a','c','r','d','b','m','z','l'}
print(a&b) # a和b都有的元素 (交集)
{'a','c'}
print(a^b) # a中没有和b中没有的元素 (a的差集和b的差集的并集)
{'r','d','b','m','z','l'}
内置函数
add()
为集合添加元素
set1={1,2,3}
set1.add(4)
print(set1)
{1, 2, 3, 4}
updata()
给集合添加元素
set1.update([5])
print(set1) #update的参数不能是纯数字
{1, 2, 3, 4, 5}
copy()
拷贝一个集合(浅拷贝)
set2=set1.copy()
print(set2)
{1, 2, 3, 4, 5}
clear()
移除集合中的所有元素
set1.clear()
print(set1)
set()
discard()
删除集合中指定的元素
set3.discard(1)
print(set3)
{ 2, 3}
pop()
一般会删除第一个元素并且会有返回值
set3={1,2,3,4,5,6}
a=set3.pop()
print(a)
1
print(set3)
{2,3,4,5,6}
remove()
移除指定元素
set3.remove(4)
print(set3)
{2,3,4,5}
difference()
返回多个集合的差集
set3={1,2,3,4}
set4={4,5,6}
a=set3.difference(set4)
print(a)
{1, 2, 3} #set3有,set4没有的元素
difference_update()
移除集合中的元素,该元素在指定的集合也存在。
set3.difference_update(set4)
print(set3)
{1, 2, 3} #将difference()的运行结果赋给set3
intersection()
返回集合的交集
set5={1,2,3,4}
set6={3,4,5}
a=set5.intersection(set6)
print(a)
{3,4} #set5有,set6也有的元素
intersection_update()
删除集合中的元素,该元素在指定的集合中不存在。
set5.intersection_update(set6)
print(set5)
{3,4} #将 intersection()的运行结果赋给set5
symmetric_difference()
返回两个集合中不重复的元素集合。
set7={1,2,3,4}
set8={3,4,5}
a=set7.symmetric_difference(set8)
print(a)
{1,2,5} #set7的差集和set8的差集的并集
symmetric_difference_update()
移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
set7.symmetric_difference_update(set8)
print(set7)
{1,2,5} # 将symmetric_difference()的运行结果赋给set7
isdisjoint()
判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
set9={1,2,3}
set10={4,5,6}
a=set9.isdisjoint(set10)
print(a)
True #set9中的元素,set10一个也不能有
issubset()
判断指定集合是否为该方法参数集合的子集。
set9={1,5,6}
set10={1,2,3,4,5,6}
a=set9.issubset(set10)
print(a)
True #set9中的元素,set10必须全有
issuperset()
判断该方法的参数集合是否为指定集合的子集
set9={1,2,3,4,5,6}
set10={4,5,6}
a=set9.issubset(set10)
print(a)
True #issubset()的反义词
union()
返回两个集合的并集
set11={1,2,3,4}
set12={3,4,5}
a=set11.union(set12)
print(a)
{1, 2, 3, 4, 5} #set11,set12 都有的不重复元素