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('密码必须包含大写字母,小写字母,数字和特殊字符')

 

posted @ 2018-06-19 15:12  小黄同学。  阅读(171)  评论(0)    收藏  举报