py-day2-4 python 集合

# 集合是由 { ,} 组成
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)

{'小马', '小唐', '小王', '小付'} {'小马', '小唐', '小付'}
{'小王'}
{'小王'}

print(l_e-t_e)

set()
# 求交补差集 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'}
原文地址:https://www.cnblogs.com/majunBK/p/10416998.html