Python-集合
一、定义:
集合也是一种数据类型,一个类似列表东西,它的特点是无序的,不重复的,也就是说集合中是没有重复的数据
list = [2,3,1,2,3,4] s_list = set(list) #这样就定义了一个集合 set1 = set([1,3,4,5,6]) #这种方式和上面的都是把list转换成一个集合 set2={'hehe','hehe1','hehe3'} #这种方式是直接定义一个集合
交集and并集
s=set() #空集合 s2 = set('1234445566778') # print(s2) s3 = {'1','1','3','4','5','6','7','9'} # 交集:就是两个集合相同的地方 print(s3 & s2) #取交集 print(s3.intersection(s2)) #取交集 #并集:就是把两个集合合并到一起,然后去重 print(s2 | s3) #取并集 print(s2.union(s3)) #取并集
差集:
s4 = {1,2,3}
s5 = {1,4,6}
#差集:在一个集合里有,在另一个集合里面没有的
#S4里面有,s5里面没有的
#取一个集合存在,另一个不存在的元素
print( s4 - s5) #取差集 s4里有,s5里没有的
print(s4.difference(s5)) #取差集 s4里有,s5里没有的
打印结果:{2,3}
对称差集
#对称差集:就是合并两个集合,然后去掉俩集合里面都有的 print(s4 ^ s5) print(s4.symmetric_difference(s5)) 打印结果:{2, 3, 4, 6} s4.add('ss') #加元素 s4.pop()#随机删一个 s4.remove('ss')#指定删除哪个 s4.update({1,2,3}) #把另外一个集合加进去 s4.isdisjoint(s5)#如果没有交集的话返回true
小练习:
校验密码是否合法:
输入一个密码,密码里必须包含大写字母、小写字母、数字和特殊字符,最多输入五次
import string #string模块里面包含所有的大写小写字母以及数字 nums_set = set(string.digits) #string.digits表示所有数字 upper_set = set(string.ascii_uppercase) #所有大写字母 lower_set = set(string.ascii_lowercase) #所有小写字母 pun_set = set(string.punctuation) #所有特殊字符 for i in range(5): pwd = input('请输入一个密码:').strip() pwd_set = set(pwd) if pwd_set & nums_set and pwd_set & upper_set and pwd_set &lower_set and pwd_set & pun_set: print('密码是合法的:',pwd) else: print('密码必须包含大写字母,小写字母,数字和特殊字符')

浙公网安备 33010602011771号