目录:https://www.jianshu.com/p/863c446364a8
一、集合
集合(set)是一个无序的不重复元素序列,创建集合可以使用大括号{ }或者set()函数
注意:创建一个空集合必须用 set()而不是{ },因为{ }是用来创建一个空字典。
创建一个集合:
set1={value1,value2,value3,...}
或者
set2=set(value) #元素不能为纯数字
实例:
#集合的去重
>>> colors={"red","yellow","green","red","black","blue","green"}
>>> print(colors)
{'blue', 'black', 'green', 'yellow', 'red'}
#快速判断元素是否在集合内
>>>print("red" in colors)
True
>>> print("pink" in colors)
False
#两个集合间的运算
>>> a=set("amliphgd")
>>> b=set("dnprtakf")
>>> a
{'l', 'd', 'm', 'a', 'g', 'h', 'p', 'i'}
>>> b
{'n', 'r', 'a', 't', 'k', 'p', 'f', 'd'}
#差集(集合a中包含而集合b中不包含的元素)
>>> a-b
{'l', 'm', 'h', 'g', 'i'}
#并集(包含集合a中和集合b中所有不重复的元素)
>>>a | b
{'n', 'l', 'd', 'r', 'm', 'a', 't', 'g', 'k', 'h', 'p', 'f', 'i'}
#交集 (集合a和集合b中重复的元素)
>>> a & b
{'p', 'a', 'd'}
#集合a和集合b中所有元素,不包含公共元素
>>> a ^ b
{'n', 'l', 'r', 'm', 't', 'g', 'k', 'h', 'f', 'i'}
二、集合的内置函数
(1)# add() 为集合添加元素
>>> set1={1,2,3,4,5}
>>> set2={3,4,5,6,7}
>>> set2.add(8)
>>> set2
{3, 4, 5, 6, 7, 8}
(2)#clear() 清除集合中的所有元素
>>> set3={1,2,3}
>>> set3.clear()
>>> set3
set()
(3)#copy() 拷贝一个集合
>>> set2={3,4,5,6,7,8}
>>> set3=set2.copy()
>>> set3
{3, 4, 5, 6, 7, 8}
(4)#update() 给集合添加元素
>>> set3={3, 4, 5, 6, 7, 8}
>>> set3.update([9]) #这里不可以是纯数字
>>> set3
{3, 4, 5, 6, 7, 8, 9}
(5)#pop() 一般删除集合的第一个元素,并且有返回值(由于集合没有索引,也可以说删除随机一个元素)
>>>set3={3, 4, 5, 6, 7, 8, 9}
>>> set3.pop()
3
>>> set3
{4, 5, 6, 7, 8, 9}
(6)#remove() 删除指定元素
>>>set3={4, 5, 6, 7, 8, 9}
>>> set3.remove(4)
>>> set3
{5, 6, 7, 8, 9}
(7)#discard() 删除指定元素 (用法与remove一样)
>>>set3={5, 6, 7, 8, 9}
>>> set3.remove(9)
>>> set3
{5, 6, 7, 8}
(8)#difference() 返回多个集合的差集
>>> set1={1, 2, 3, 4, 5}
>>> set2={3, 4, 5, 6, 7, 8}
>>> set1.difference(set2)
{1, 2}
(9)#difference_update() 移除集合中的元素,该元素在指定的集合也存在。
>>> set1={1, 2, 3, 4, 5}
>>> set2={3, 4, 5, 6, 7, 8}
>>> set1.difference_update(set2)
>>> set1
{1, 2} # #将difference()的运行结果赋给set1
(10)intersection() 返回集合的交集
>>> set4={1,2,3,4,5}
>>> set5={3,4,5,6,7}
>>> set4.intersection(set5)
{3, 4, 5}
(11)intersection_update() 删除集合中的元素,该元素在指定的集合中不存在。
>>> set4={1,2,3,4,5}
>>> set5={3,4,5,6,7}
>>> set4.intersection_update(set5)
>>> set4
{3, 4, 5} #将intersection的运行结果赋给set4
(12)#symmetric_difference() 返回两个集合中不重复的元素集合。
>>> set6={1,2,3,4,5}
>>> set7={3,4,5,6,7}
>>> set6.symmetric_difference(set7)
{1, 2, 6, 7}
(13) #symmetric_difference_update() 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
>>> set6={1,2,3,4,5}
>>> set7={3,4,5,6,7}
>>> set6.symmetric_difference_update(set7)
>>> set6
{1, 2, 6, 7} #将symmetric_difference的运行结果赋给set6
(14)#union() 返回两个集合的并集
>>> set6={1, 2, 6, 7}
>>> set7={3, 4, 5, 6, 7}
>>> set6.union(set7)
{1, 2, 3, 4, 5, 6, 7} #返回的是set6和set7集合的所有元素,不包括重复项
(15)#isdisjoint() 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
>>> set6={1, 2, 6, 7}
>>> set7={3, 4, 5, 6, 7}
>>> set6.isdisjoint(set7)
False #为True的条件为set6和set7没有重复项
(16) #issubset() 判断指定集合是否为该方法参数集合的子集。
>>> set8={1,2,3,4,5}
>>> set9={3,4,5}
>>> set9.issubset(set8)
True #set9的所有元素set8必须都有才返回True
(17) #issuperset() 判断该方法的参数集合是否为指定集合的子集
>>> set8={1,2,3,4,5}
>>> set9={3,4,5}
>>> set9.issuperset(set8)
False #issubset()的反义词