4.5 数据类型内置方法_可变类型(3)_集合

4.5 数据类型内置方法_可变类型(3)_集合

4.5.1

  1. 作用:存多个值
  2. 定义方式 :'{}'内以逗号隔开多个元素,元素必须是不可变类型(整型字符型,浮点型)
# s={1,21,5,6,[1,2]} #列表式可变类型
s={1,2,1,2,1,3,5,6}
print(s) #去重

# 定义空集合
s1=set() #定义集合
s2={} #定义字典
print(type(s2))
{1, 2, 3, 5, 6}
<class 'dict'>
  1. 方法:
    集合用于交集并集等运算
  • 方法1**
#(1)去重,去重的同时打乱列表元素原有顺序
l1=[1,2,1,7,8,2,1,3,5,6]
print(list(set(l1)))
[1, 2, 3, 5, 6, 7, 8]
#(2)长度len
s={1,2,1,2,3,4,5}

print(len(s))
5
#(3)成员运算 in/not in
s={1,2,3,5,6}
# 
print(1 in s)
print(1 not in s)
True
False
#(3)|,union并集
s={1,2,3,5,6}
t={5,4,1,9,8,10}

print(s | t)
print(s.union(t))
{1, 2, 3, 4, 5, 6, 8, 9, 10}
{1, 2, 3, 4, 5, 6, 8, 9, 10}
#(4) &、intersection交集
s={1,2,3,5,6}
t={5,4,1,9,8,10}

print(s & t)
print(s.intersection(t))
{1, 5}
{1, 5}
#(5)-,difference差集
s={1,2,1,2,1,3,5,6}
t={5,4,1,9,8,10}

print(s-t)
print(s.difference(t))
print(t.difference(s))

{2, 3, 6}
{2, 3, 6}
{8, 9, 10, 4}
#(6)^对称差集,symmetric_difference
s={1,2,3,5,6}
t={5,4,1,9,8,10}

print(s^t)
print(s.symmetric_difference(t))
{2, 3, 4, 6, 8, 9, 10}
{2, 3, 4, 6, 8, 9, 10}
#(7)==
s={1,2,3,5,6}
t={5,4,1,9,8,10}
print(s==t)
False
#(8)父集:>、>=、issuperset
s={1,2,3,5,6}
t={1,2}
print(s>t,s>=t,s.issuperset(t))
True True True
#(9)子集:<、<=、issubset
s={1,2,3,5,6}
t={1,2}
print(t<s,t<=s,t.issubset(s))
True True True
  • 方法2*
#(1)add
s={1,2,3,5,6}
print(f'操作前:id:{id(s)},s:{s}')
print('-'*50)

s.add('d')
print(s)
print('-'*50)

print(f'操作后:id:{id(s)},s:{s}')

操作前:id:2582905430848,s:{1, 2, 3, 5, 6}
--------------------------------------------------
{1, 2, 3, 5, 6, 'd'}
--------------------------------------------------
操作后:id:2582905430848,s:{1, 2, 3, 5, 6, 'd'}
#(2)remove
s={1,2,3,5,6}
print(f'操作前:id:{id(s)},s:{s}')
print('-'*50)

s.remove(5) #元素不存在则报错
print(s)
print('-'*50)

print(f'操作后:id:{id(s)},s:{s}')
操作前:id:2582905427488,s:{1, 2, 3, 5, 6}
--------------------------------------------------
{1, 2, 3, 6}
--------------------------------------------------
操作后:id:2582905427488,s:{1, 2, 3, 6}
#(3)difference_update,
s={1,2,3,5,6}
t={5,4,1,9,8,10}
print(f'操作前:id:{id(s)},s:{s}')
print('-'*50)

s.difference_update(t) #从集合s中删除集合t的所有元素

print(f'操作后:id:{id(s)},s:{s}')
操作前:id:2582905430176,s:{1, 2, 3, 5, 6}
--------------------------------------------------
操作后:id:2582905430176,s:{2, 3, 6}
#(4)discard,删除
s={1,2,3,5,6}


print(f'操作前:id:{id(s)},s:{s}')
print('-'*50)

s.discard(1)
s.discard(7) #删除不存在的元素不报错
print(s.discard(7))

print(f'操作后:id:{id(s)},s:{s}')
操作前:id:2582905429056,s:{1, 2, 3, 5, 6}
--------------------------------------------------
None
操作后:id:2582905429056,s:{2, 3, 5, 6}
#(3)isdisjoint,有交集返回False没有交集返回True
s={1,2,3,5,6}
t={5,4,1,9,8,10}
u={7,8,9}

print(s.isdisjoint(t))
print(s.isdisjoint(u))

False
True
  1. 存储一个值或多个值:多个值
  2. 有序 or 无序:无序
  3. 可变or不可变:可变
posted @ 2025-08-12 14:34  bokebanla  阅读(4)  评论(0)    收藏  举报