# Python3 集合标签:Python,18,s1,元素,python,s2,print,集合,属性 From: https://www.cnblogs.com/liu-zhijun/p/18348069
# 集合(set)是一个无序的不重复元素序列。
# 集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。
#集合中元素必须是不可变类型,也就说里面不能是列表和字典
# 可以使用大括号 { } 创建集合,元素之间用逗号 , 分隔, 或者也可以使用 set() 函数创建集合。
s={1,2,3,4,5,6,6}
s.add('3') #添加元素
s.pop() #随机删除元素
s.remove(3) #删除指定元素,如果该元素不存在会报错
s.discard(4) #删除指定元素,如果该元素不存在不会报错
print(s)
s=set('hello')
print(s)
s=set(['alex','alex','sb'])
print(s)
s.add('s')
print(s)
s.clear()
print(s)
#输出如下两个里面的相同元素,求交集
#方法1,用列表
python_l=['abc','edf','ghi']
java_l=['abc','edf']
python_and_java_l=[]
for p_name in python_l:
if p_name in java_l:
python_and_java_l.append(p_name)
print(python_and_java_l)
#方法2,用集合,求交集
python_l=['abc','edf','ghi']
linux_l=['abc','edf','jkl']
p_s=set(python_l)
l_s=set(linux_l)
print(p_s,l_s)
print(p_s.intersection(l_s)) #求交集 &
print(p_s.union(l_s)) #求并集 |
print(p_s|(l_s)) #求并集,上面并集的简写
print(p_s.difference(l_s)) #求差集
print(p_s-(l_s)) #求差集 -
print(l_s-(p_s)) #求差集
print(p_s.symmetric_difference(l_s)) # 交叉补集
print(p_s^(l_s)) # 交叉补集 ^
p_s=p_s-l_s #减掉之后赋值给他
print(p_s)
p_s.difference_update(l_s) #和上面是同一个意思
print(p_s)
s1={1,2}
s2={2,3,4}
print(s1.isdisjoint(s2)) #判断两个集合是否没有交集
s1={1,2}
s2={1,2,3}
print(s1.issubset(s2)) #判断前一个是否为后一个的子集
print(s2.issubset(s1)) #判断前一个是否为后一个的子集
print(s2.issuperset(s1)) #判断前一个是否为后一个的父集
s1.update(s2) #更新多个值,与并集的区别是赋值给s1,而并集的s1是不会变的
print(s1)
s1.update((5,6)) #传元组上去
print(s1)
s1.update([7,8]) #传列表上去
print(s1)
s1.add(4) #只能传一个值更新
print(s1)
s=frozenset'hello'