Python老男孩 day14 集合

s=set('hello')
print(s)

运行结果:
{'l', 'o', 'e', 'h'}

s=set(['alex','alex','sb'])
print(s)

运行结果:
{'sb', 'alex'}

s={1,2,3,4,5,6}

#添加
s.add('s')
s.add('3')
s.add(3)
print(s)

运行结果:
{1, 2, 3, 4, 5, 6, 's', '3'}

#清空
s.clear()
print(s)

运行结果:
set()

#拷贝
s1=s.copy()

#随机删
s={'sb',1,2,3,4,5,6}
s.pop()

运行结果:
{2, 3, 4, 5, 6, 'sb'}

#指定删除
s.remove('sb')
#删除元素不存在会报错

s.remove('hellol')
#删除元素不存在不会报错

s.discard('sbbbb')
print(s)


python_l=['lcg','szw','zjw','lcg']
linux_l=['lcg','szw','sb']
p_s=set(python_l)
l_s=set(linux_l)
print(p_s,l_s)

运行结果:
{'lcg', 'szw', 'zjw'} {'lcg', 'szw'}


# #求交集
#方法一
print(p_s.intersection(l_s))

运行结果:
{'lcg', 'szw'}

#方法二
print(p_s&l_s)

运行结果:
{'lcg', 'szw'}

# #求并集
#方法一
print(p_s.union(l_s))
#方法二
print(p_s|l_s)

运行结果:
{'lcg', 'zjw', 'szw'}


# #差集
print('差集',p_s-l_s)
print(p_s.difference(l_s))
print('差集',l_s-p_s)
print(l_s.difference(p_s))

运行结果:
差集 {'zjw'}
{'zjw'}
差集 set()
set()

#交叉补集(相当于 并集-交集 )
print('交叉补集',p_s.symmetric_difference(l_s))
print('交叉补集',p_s^l_s)

运行结果:
交叉补集 {'sb', 'zjw'}
交叉补集 {'sb', 'zjw'}


python_l=['lcg','szw','zjw','lcg']
linux_l=['lcg','szw','sb']
p_s=set(python_l)
l_s=set(linux_l)
print(p_s,l_s)
# print('差集',p_s-l_s)
# p_s=p_s-l_s
#求完差集,并将差集赋值
p_s.difference_update(l_s)
#相当于:
# print('差集',p_s-l_s)
# p_s=p_s-l_s
print(p_s)

运行结果:
{'zjw'}

#没有交集返回True,有交集返回False
s1={1,2}
s2={2,3,5}
print(s1.isdisjoint(s2))

运行结果:
False


s1={1,2}
s2={1,2,3}
#s1 是s2 的子集
print(s1.issubset(s2))
print(s1<=(s2))

运行结果:True

print(s2.issubset(s1))

运行结果:False

#s1 是s2 的父集
print(s2.issuperset(s1))
print(s2>=(s1))

运行结果:True


s1={1,2}
s2={1,2,3}
#求并集,并把并集赋值给s1
s1.update(s2)
print(s1)

运行结果:
{1, 2, 3}

#update用于更新多个值
s1.update((3,4))
print(s1)

运行结果:
{1, 2, 3, 4}

s1.update([3,4])
print(s1)

运行结果:
{1, 2, 3, 4}

#add只能更新一个值,否则报错
s1.add(1,2,3,4)
#只求并集不更新
s1.union(s2)

#不可变集合
s=frozenset('hello')
print(s)

运行结果:
frozenset({'l', 'o', 'e', 'h'})


#简单去重(对顺序不要求)
names=['alex','alex','wupeiqi']
names=list(set(names))
print(names)

原文地址:https://www.cnblogs.com/zhuhemin/p/9095947.html