#集合:无序的不重复

'''
关键字: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}