# 集合是由 { ,} 组成
test = {1,2,8,9,7,5}
print(test)
{1, 2, 5, 7, 8, 9}
# 集合的结果是 去重的,且排序是 无序的
test = {1,2,3,3,5,8,5,9,7,6}
print(test)
{1, 2, 3, 5, 6, 7, 8, 9}
s = set('hello')
print(s)
{'l', 'o', 'h', 'e'}
# add()添加
test = {1,2,3,8,5,9,7,6}
test.add(16)
print(test)
{1, 2, 3, 5, 6, 7, 8, 9, 16}
# .clear()清空
test = {1,2,3,8,5,9,7,6}
test.clear()
print(test)
set()
# .copy() 复制
test = {1,2,3,8,5,9,7,6}
s =test.copy()
print(s)
{1, 2, 3, 5, 6, 7, 8, 9}
# .pop() 随机删除
test = {'abc',10,2,3,8,5,9,7,6}
test.pop()
print(test)
{3, 5, 6, 7, 8, 9, 10, 'abc'}
# .remove() 指定删除(如果删除元素不存在会报错)
test = {'abc',10,2,3,8,5,9,7,6}
test.remove(10)
print(test)
{2, 3, 5, 6, 7, 8, 9, 'abc'}
## .discard() 指定删除 (如果元素不存在,不会报错)
test = {'abc',10,2,3,8,5,9,7,6}
test.discard(888)
print(test)
{2, 3, 5, 6, 7, 8, 9, 10, 'abc'}
# 求交集 intersection() 或者 &
testname = ['小马','小张','小李','小王']
lastname = ['小唐','小马','小付']
t_e = set(testname)
l_e = set(lastname)
print(t_e,l_e)
print(t_e.intersection(l_e))
print(t_e&l_e)
{'小张', '小马', '小王', '小李'} {'小唐', '小马', '小付'}
{'小马'}
{'小马'}
# 求并集 union() 或者 |
testname = ['小马','小张','小李','小王']
lastname = ['小唐','小马','小付']
t_e = set(testname)
l_e = set(lastname)
print(t_e,l_e)
print(t_e.union(l_e))
print(t_e|l_e)
{'小马', '小李', '小王', '小张'} {'小马', '小唐', '小付'}
{'小马', '小王', '小付', '小张', '小李', '小唐'}
{'小马', '小王', '小付', '小张', '小李', '小唐'}
# 求差集 difference() 或者 -
testname = ['小唐','小王','小马','小付']
lastname = ['小唐','小马','小付']
t_e = set(testname)
l_e = set(lastname)
print(t_e,l_e)
print(t_e.difference(l_e))
print(t_e-l_e)
{'小马', '小唐', '小王', '小付'} {'小马', '小唐', '小付'}
{'小王'}
{'小王'}
# 求交补差集 symmetric_difference() 或者 ^
testname = ['小李','小王','小马','小付']
lastname = ['小唐','小马','小付']
t_e = set(testname)
l_e = set(lastname)
print(t_e,l_e)
print(t_e.symmetric_difference(l_e))
print(t_e^l_e)
{'小马', '小王', '小李', '小付'} {'小马', '小付', '小唐'}
{'小唐', '小王', '小李'}
{'小唐', '小王', '小李'}
# 差集更新 .difference_update()
testname = ['小唐','小王','小马','小付']
lastname = ['小唐','小马','小付']
t_e = set(testname)
l_e = set(lastname)
print(t_e,l_e)
t_e = t_e-l_e # 原始方法
print(t_e)
t_e.difference_update(l_e) # 函数方法
print(t_e)
{'小付', '小王', '小唐', '小马'} {'小付', '小唐', '小马'}
{'小王'}
{'小王'}
# .isdisjoint() 判断公有,有未False,没有为True
a = {1,2,3,8}
b = {2,4,6,9}
print(a.isdisjoint(b))
False
a = {1,2,3,8}
b = {0,4,6,9}
print(a.isdisjoint(b))
True
# .issubset() 判断是否是子集
s1 = {1,2}
s2 = {1,2,3,4}
print(s1.issubset(s2)) #s1是s2的子集
print(s2.isdisjoint(s1)) # False
True
False
# .issuperset() 判断是否是父集
s1 = {1,2}
s2 = {1,2,3,4}
print(s2.issuperset(s1)) #s2是s1的父集
True
# .update() 更新 (可以更新多个值,列表、元祖都行) add只能更新一个值
s1 = {1,2}
s2 = {1,2,3,4}
s1.update(s2)
print(s1)
print(s1,s2)
{1, 2, 3, 4}
{1, 2, 3, 4} {1, 2, 3, 4}
s1 = {1,2}
s2 = {1,2,3,4}
s1.update((6,8))
print(s1)
print(s1,s2)
{8, 1, 2, 6}
{8, 1, 2, 6} {1, 2, 3, 4}
# frozenset() 改变成不可变集合
s = frozenset('hello')
print(s)
frozenset({'l', 'e', 'o', 'h'})
# # 集合后的列表
test =['majun','xiaoma','xiaoma']
name = list(set(test))
print(name)
['majun', 'xiaoma']
# 集合变列表 无序
test = {'majun','xiaoma','zhangfei'}
name = list(test)
print(name)
['zhangfei', 'xiaoma', 'majun']
# 列表变集合 无序
test =['majun','xiaoma','zhangfei']
name = set(test)
print(name)
{'zhangfei', 'xiaoma', 'majun'}