1、简介

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

2、集合的作用

  • 它可以把一个列表中重复的数据去掉,而不需要你再写判断
  • 可以做关系测试,比如说有两个班,一个性能测试班,一个是接口测试班的,想找出来既学习了性能又学习了接口测试的同学,就可以用集合。

3、定义集合

 # 集合:天生去重,集合是无序的
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} # 这种方式直接定义一个集合

4、集合相关操作

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

5、交集

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

6、并集

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

7、差集

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

8、对称差集

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

9、练习

 # 校验密码里面是否包含数字、大写字母、小写字母和特殊符号
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(3):
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('密码不合法,密码必须包含数字、大写字母、小写字母和特殊字符')
else:
print('错误次数超限')

最新文章

  1. 面试题---PHP
  2. 解决Type 'UnityEngine.Component' does not support slicing
  3. c++ 一个类使用另外一个类的变量或方法
  4. IE9-10 option BUG
  5. 关于异常的疑难解答:System.Runtime.InteropServices.COMException
  6. PHP面向对象三大特性之一:封装
  7. linux configure 应用
  8. 30. pt-upgrade
  9. VB中将类标记为可序列化
  10. requests库入门10-超时,错误与异常
  11. localStorage的存储、获取、删除操作
  12. CSS的vertical-align
  13. Python全栈-magedu-2018-笔记11
  14. AWS机器学习初探(2):文本翻译Translate、文本转语音Polly、语音转文本Transcribe
  15. java反射bean to bean
  16. Linux端口命令
  17. JetBrains C++ IDE CLion配置与评测
  18. NABCD模型分析
  19. 同一页面的两个Iframe,其中一个iframe获取另一个iframe内的iframe中的元素值
  20. [CF226E]Noble Knight's Path

热门文章

  1. host - 使用域名服务器查询主机名字
  2. Linux学习--第十三天--日志、系统运行级别、grub加密
  3. matlab读取内容为二进制的TXT文件
  4. 2019.10.17 CCSP自闭打铜
  5. 认识JWT(转)
  6. 深入理解JAVA虚拟机 程序编译和代码优化
  7. 使用注解方式实现账户的CRUD
  8. Codeforces Round #568 (Div. 2) D. Extra Element
  9. rsync快速部署记录
  10. docker容器共享宿主机环境,从而为镜像体积减负