集合的定义:由不同元素组成、且元素排列是无序的、并且元素是不可变的(字符串、数字、元组)。

定义方法:

s={1,2,3,4,"yxz"}
print(s)               #定义了一个集合,虽然都是大括号,但是用逗号隔开
s=set("hello")
print(s)           #可以用系统自带的set定义集合,将每个元素都分开了,输出结果为{'e', 'h', 'l', 'o'}
a=set(["hello","hello","alex","sb"])           #注意,这里定义时往里面填的是数组,中括号,输出结果是元组中的每一个元素
print(a)                       #输出结果为{'sb', 'alex', 'hello'}

 

集合具有去重的特性

s={1,2,3,4,"yxz",1,2,3,3,3,"yxz"}
print(s)               #输出结果为{1, 2, 3, 4, 'yxz'},显示了去重的特性

集合的操作

s=set([1,2,3,4,5,6])
s.add("s")              #向集合中加入一个元素
print(s)
s.add(3)                #一样的元素,加不进去了,集合中只能由一个3
print(s)

s=set([1,2,3,4,5,6])
s.clear() #集合的清空,输出结果为set()
print(s)

s=set([1,2,3,4,5,6])
s1=s.copy() #集合的拷贝
print(s1)

s=set([1,2,3,4,5,6])
# s.pop() #删除元素,删除的是无序的
# print(s)
s.remove(5) #删除指定元素的方法,如果删除的是集合中没有的东西,系统会报错
s.discard(12) #也是删除指定的元素,但是删除的元素如果不存在,系统不会报错

 

集合关系与交集补集运算

p_1={"lcg","szw","zjw"}
m_1={"lcg","szw","yxz"}            #构建了两个集合
#集合的关系测试
v=p_1.intersection(m_1)            #intersection功能是求两个集合的交集
print(v)
v2=p_1&m_1                          #用“&”符号也可以用来求交集
print(v2)
v3=p_1.union(m_1)                  #union是求并集 的运算
print(v3)
v4=p_1|m_1                    #用|也可以实现并集的运算
print(v4)

v=p_1-m_1                  #通过减号得到差集
print(v)
v1=p_1.difference(m_1)            #.difference功能也是求差集
print(v1)

  

 集合其他的内置计算:

#集合的交叉补集  :就是两个集合全集 减去 两个集合的交集
v=p_1.symmetric_difference(m_1)
print(v)

v=p_1.difference(m_1)
print(v) #{'zjw'}
print(p_1) #{'szw', 'lcg', 'zjw'},虽然进行了减法运算,但是没有改变原来的值
p_1.difference_update(m_1) #这个功能是做完了减法运算,在将得到的值赋予了前面的那个集合
print(p_1)

p_1={"lcg","szw","zjw"}
m_1={"lcg","szw","yxz"} #构建了两个集合
#集合的其他内置方法
print(p_1.isdisjoint(m_1)) #.isdisjoint功能是判断两个集合是否有交集,若没有交集,则返回TRUE,本处返回false

s1={1,2,3,4}
s2={2,3,4}
v=s1.issubset(s2) #判断s1是否是s2的子集,输出为false
print(v)
v1=s1.issuperset(s2) #判断s1是否是s2的父集,输出为true
print(v1)

s1={"yxz"}
s2={2,3,4,5}
s1.update(s2) #相当于s1 s2求并集,然后在赋值给s1 给s1 进行了更新 !!!注意,update可以给集合更新多个值,可以在括号里加字符串,数字,元组,列表等
print(s1) #添加列表相当于添加了多个值,而add只可以添加一个值

 

 集合的补充知识

s=frozenset("hello")        #之前的定义方法是定义一个可变的集合,而这种方法定义的是不可变集合,不可以添加或者删除、更改
print(s)

name=["alex","yxz","ymz","yxz"]
s=set(name) #将列表变成集合
print(s)
names=list(s) #将集合重新变成列表形式
print(names)