2021-08-26 Python之集合
#集合:无序的不重复
'''
关键字:set
'''
1 list1=[1,2,3,5,6,7,7,6,] 2 #声明集合 3 s1=set() #创建空集合 4 s2={} #不放元素默认是字典类型 5 print(type(s1)) 6 print(type(s2)) 7 s3={1,2,3,4,5,6} #放单个元素就是集合 8 print(type(s3)) 9 10 #将一个列表快速去重 11 s4=set(list1) 12 print(s4)
#集合:增删改查
#增加 add() 添加一个元素
#update()
1 s1.add('hello') 2 s1.add('lily') 3 s1.add('小猪') 4 print(s1) 5 6 t1=(1,2,3) 7 s1.update(t1) 8 print(s1)
#删除
#remove() :如果元素存在则删除,不存在则报错
#pop():随机删除,一般删除第一个
#clear():清空
#discard():类似remove(),但是不会报错
1 s1.remove(1) 2 print(s1) 3 s1.pop() 4 print(s1) 5 s1.clear() 6 print(s1)
#案例
'''
产生10个1-20的随机数,去除里面的重复项
键盘输入一个元素,将此元素从不重复的集合中删除
'''
1 #方式一 2 import random 3 list1=[] 4 5 for i in range(10): 6 ran =random.randint(1,20) 7 list1.append(ran) 8 9 set1=set(list1) #去重 10 11 print(list1) 12 print(set1) 13 14 num=int(input('输入一个数字:')) 15 set1.discard(num) #用discard 找不到删除的元素不会报错 16 print('结果:',set1)
1 #方式二 2 set1=set() 3 for i in range(10): 4 ran=random.randint(1,20) 5 set1.add(ran) 6 print(set1) 7 8 num=int(input('输入一个数字:')) 9 set1.discard(num) 10 print('删除之后结果:',set1)
#其他:符号操作
#集合不支持 + *
#集合支持 - & | ^
1 print(6 in set1) 2 print(2 not in set1) 3 #判断2个集合中的内容是否相等 == 4 set2={1,2,3,4} 5 set3={1,2,3,4} 6 print(set2==set3) 7 # - 差集 difference() 8 set4=set2-set3 9 print(set4) 10 set5=set3.difference(set2) 11 print(set5) 12 13 # & 交集 intersecton() 14 set6=set3 & set2 15 print(set6) 16 set7=set3.intersection(set2) 17 print(set7) 18 19 # | 并集 union() 20 set8=set2 | set3 21 print(set8) 22 set9=set3.union(set2) 23 print(set9) 24 25 # ^ 对称差集 symmtric_difference() 26 set11={1,2,3,4} 27 set12={3,4,5,6} 28 r=set11 ^ set12 29 print(r)
# difference_update() 差集并赋值
# symmetric_difference_update() 对称差集并赋值
# intersection_update() 交集并赋值
1 set11.difference_update(set11) 2 print(set11)
#可变和不可变
#不可变:对象所指向的内存中的值是不可改变的
#不可变类型:int str float tuple
1 s1='ad' 2 print(id(s1)) 3 s1='asd' 4 print(id(s1))
#可变的:对象所指向的内存中的值是可以改变的
#可变类型:字典dict 列表list
1 list1=[1,2,3] 2 print(list1,id(list1)) 3 list1.pop() 4 print(list1,id(list1)) 5 6 list1=[1,2,3,4,5] 7 list2=list1 8 list1.remove(5) 9 print(list2)
本文来自博客园,作者:{admin-xiaoli},转载请注明原文链接:{https://www.cnblogs.com/crackerroot}