Python学习之==>集合

集合:

        集合也是一种数据类型,一个类似列表东西,它的特点是无序的,不重复的,也就是说集合中是没有重复的数据。

集合的作用:

        1、它可以把一个列表中重复的数据去掉,而不需要你再写判断

        2、可以做关系测试,比如说有两个班,一个性能测试班,一个是接口测试班的,想找出来既学习了性能又学习了接口测试的同学,就可以用集合。

定义集合:

list = [2,3,1,2,3,4]
s1 = set()#定义空集合
s2 = set('aaee1122')#集合会把重复数据去掉
s3 = set(list)#把list转换成一个集合
s4 = set([2,3,1,2,3,4])#这种方式和上面的都是把list转换成一个集合
s5 = {1,2,1,4,2,5,7}#这种方式直接定义一个集合

集合相关操作:

s = {1,2,3,4,5,6,7}
s.add(9) #加元素
s.pop() #随机删除一个元素
s.remove(7) #指定删除哪个元素
s.update({11,12,13}) #把另外一个集合加到s集合中去

交集:

s1 = set('aaee1122')
s2 = {'1','2','1','4','2','5','7'}
print(s1 & s2)#取交集
print(s1.intersection(s2))#取交集
print(s1.isdisjoint(s2))#判断list1和list3是否有交集,如果没有交集,返回True,有交集则返回False

并集:

# 并集:把两个集合合并到一起,去重
s1 = set('aaee1122')
s2 = {'1','2','1','4','2','5','7'}
print(s1 | s2)#取并集
print(s1.union(s2))#取并集

差集:

# 差集:去掉前面的集合中两个集合都有的元素并去重
s1 = set('aaee1122')
s2 = {'1','2','1','4','2','5','7'}
print(s1 - s2)#取差集
print(s1.difference(s2))#取差集

对称差集

# 对称差集:去掉两集合里面都有的,然后合并两个集合并去重
s1 = set('aaee1122')
s2 = {'1','2','1','4','2','5','7'}
print(s1 ^ s2)#取对称差集
print(s1.symmetric_difference(s2))#取对称差集

小练习:

# 校验密码里面是否包含数字、大写字母、小写字母和特殊符号
import string
num_set = set(string.digits)
upper_set = set(string.ascii_uppercase)
lower_set = set(string.ascii_lowercase)
pum_set = set(string.punctuation)
for i in range(5):
pwd = input('请输入密码:').strip()
pwd_set = set(pwd)
if pwd_set & num_set and pwd_set & upper_set and pwd_set & lower_set and pwd_set & pum_set:
print('密码输入合法')
break
else:
print('密码不合法,密码必须包含数字、大写字母、小写字母和特殊字符')

猜你喜欢

转载自www.cnblogs.com/L-Test/p/8978156.html