集合set()声明,增删改查,符号运算

集合:关键字set()
集合的作用:无序的不重复的元素
集合可以用来去重。

#不重复特点
list1=[4,5,8,8,9,5,6,7,3]
1.#声明集合:set
s1=set()
s2={ }#和字典的符号相同,集合的符合也是{},只不过字典里面放的是键值对,集合里面放的是元素。集合{元素1,元素2,元素3,...}
print(type(s2)) #输出<class 'dict'> 输出类型是字典 s2={1,3,7}则类型是集合
print(type(s1))#输出<class 'set'>
#应用 将一个列表快速去重
s3=set(list1)
print(s3) #输出{3,4,5,6,7,8,9}
2.#集合里面的增删改查 
往集合增加元素 ,add()添加一个元素 update() 可以添加多个元素 
s1=set()
s1.add('hello')
s1.add('小猪佩奇')
s1.add('lucy')
print(s1)#输出{’lucy','小猪佩奇','hello'}
t1=('林志玲','言承旭')
s1.update(t1)
print(s1)#输出{'小猪佩奇','hello','林志玲','言承旭','lucy'}
s1.add(t1)
print(s1)#输出{'小猪佩奇',('林志玲','言承旭'),'hello','林志玲','言承旭','lucy'}
删除集合中的元素, remove 如果元素存在则删除,如果要删除的元素不存在则报错,discard 类似remove 但在移除不存在的元素的时候不会报错,pop()会删除一个,clear清除。
s1.remove('言承旭')
print(s1) #输出{'小猪佩奇',('林志玲','言承旭'),'hello','林志玲','lucy'}
#s1.remove('道明寺')
#print(s1) #报错keyerror
s1.pop()
print(s1)#删出一个 
s1.clear()
print(s1)#输出set()

集合的一个小案例
1.产生10个1-20的随机数,去除里面的重复项
2.键盘输入一个元素,将此元素从不重复的集合中删除

import random
list1=[]
#方法1
for i  in range(10):
ran =random.randint(1,20)
list1.append(ran) 
set1=set(list1)
print(list1)#{20,10,7,13,15,2,12,4,10,19}
print(set1)#{2,4,7,10,12,13,15,19,20}
 num=int(input('输入一个数字:'))#强转整形
set1.discard(num)#{4,5,8,11,13,15,16,18,20}
print(set1)#{5,8,11,13,15,16,18,20}
#方法2
set1=set()
for i in range(10):
	ran=random.randint(1,20)
	set1.add(ran)
print(set1)#set1不会存在重复元素 

#其他的符号操作 集合里面的-表示差集 ,difference() &表示交集 函数 intersection,|表示并集 函数 union

在这里插入图片描述

print(6 in  set1)#False
set2={2,3,4,5,6}
set3={2,3,4,5,6}
print(set2==set3)#True,比较的元素是否相等
set3={2,3,4,5,6,7,8}
set4=set3-set2
print(set4)#输出7,8
set5=set3.difference(set2) 
print(set5)#输出8,7
set6=set3&set2
print(set6)#输出{2,3,4,5,6}
set7=set3.intersection(set2)
print(set7)#输出{2,3,4,5,6}
set8=set3|set2
print(set8)
set9=set3.union(set2)#输出{2,3,4,5,6,7,8}
print(set9)#输出{2,3,4,5,6,7,8}
案例
'''
已知两个列表:
l1=[5,1,2,9,0,3]
l2=[7,2,5,7,9]
找出两个列表的不同元素
找出两个列表的共同元素 
'''
l1=[5,1,2,9,0,3]
l2=[7,2,5,7,9]
s1=set(l1)
s2=set(l2)
#对称差集
result=(s1|s2)-(s1&s2)
print(result)#输出结果{0,1,3,7}
result=s1^s2#^对称差集,两个列表中不一样的元素  systemtric_difference()
print(result)#输出结果是{0,1,3,7}
'''
每一个多了个复制的过程
intersection_update()交集并复制
union_update()并集并复制
difference_update(s2) 差集并复制
symmetric_difference_update()对称差集并复制 
'''
s1.difference_update(s2)#等价于s1=s1-s2
print(s1) #输出结果{0,1,3} 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值