Python学习之==>集合
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('错误次数超限')
Python学习之==>集合的更多相关文章
- Python学习五|集合、布尔、字符串的一些特点
#集合本身就像无值的字典 list1 = set([1,2,3,4]) list2 = {1,2,3,4} print('list1 == list2?:',list1==list2)#list1 = ...
- Python学习笔记——集合类型
集合类型有两种不同的类型——可变集合(set)和不可变集合(frozenset) 可变集合不是可哈希的,不能用作字典的键,也不能用做其他集合中的元素 不可变集合是有哈希值的,能被用做字典的键或者是作为 ...
- python学习之集合
集合(set)是一个无序的不重复元素序列. 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典. 创建格 ...
- Python学习——set集合的补充
set 是一个无序且不重复的元素集合>>> num = {1,2,3,4,5} 1.add()添加一个元素 >>> num.add(6) >>> ...
- day5:python学习之集合
0. 集合的作用及特点 集合具有去重和关系测试两大作用,它具有无序的特点. list1 = [1,2,3,4,5,7,6,8,6,4] list1 = set(list1) print(list1) ...
- Python学习 :集合
集合 Set 集合的创建 集合的创建只有一种方式 集合中的元素必须是不可变的数据类型 集合是无序的,可以通过 for 循环来遍历或者迭代器进行筛选 s=set('xiaoming') s1=['ale ...
- python学习-21 集合 2
集合的其他方法 1.交差补集 math = {'xm','xh','xg','xx'} english ={'xm','xh','dm','john'} print(math.symmetric_di ...
- python学习-20 集合
集合set 1.由不同元素组成的集合,集合是一组无序排列的,集合中的元素必须是不可变的 -定义集合 第一种: jh = {1,2,3,4} print(type(jh),jh) 运行结果: <c ...
- Python学习笔记——集合
1. 定义 num = {} print(type(num)) num2 = {1,2,3,4,5} print(type(num2)) <class 'dict'> <class ...
随机推荐
- Java 从后向前依次比较两个数组
这是华为往年的一道上机题 题目: 给定两个数组,以及两个数组的长度,要求从最后一个元素开始,依次比较两个数组对应的元素.如果有一个数组较短,则以短数组为准.返回不同元素的个数. 解答: int fun ...
- Redis入门部署及持久化
软件简介 软件说明 Redis是一款开源的,ANSI C语言编写的,高级键值(key-value)缓存和支持永久存储NoSQL数据库产品. Redis采用内存(In-Memory)数据集(DataSe ...
- CNN实战篇-手把手教你利用开源数据进行图像识别(基于keras搭建)
我一直强调做深度学习,最好是结合实际的数据上手,参照理论,对知识的掌握才会更加全面.先了解原理,然后找一匹数据来验证,这样会不断加深对理论的理解. 欢迎留言与交流! 数据来源: cifar10 (其 ...
- httprunner如何提取数据串联上下游接口
httprunner进行接口测试时,从上一个接口提取参数传递给下游接口,如何获取数据里最后一个值? 突然被学员问道一个httprunner的问题,惭愧的是大猫之前没有是通过httprunner,又不好 ...
- robotframework调用外部python多次运行拿到的都是同一个值
外部python是一个爬虫,爬取的内容的定义没有放入函数中.导致一次爬取多次使用的情况出现. 第一版函数如下: 改版后:
- C++11 学习笔记
unique_ptr 可以实现如下功能: 1.为动态申请的内存提供异常安全 2.讲动态申请的内存所有权传递给某函数 3.从某个函数返回动态申请内存的所有权 4.在容器中保存指针 5.auto_ptr ...
- 【bzoj2300】【Luogu P2521】 [HAOI2011]防线修建 动态凸包,平衡树,Set
一句话题意:给你一个凸包,每次可以插入一个点或者询问周长. 动态凸包裸题嘛,用\(Set\)实现.最初每个点坐标做乘三处理,便于取初始三角形的重心作为凸包判定原点. #include <bits ...
- linux常用基本命令不全
pwd 显示当前目录 ls -lh 显示文件列表,h表示会显示文件的大小 mkdir zhu 创建文件夹zhu rmdir zhu 移除文件夹zhu如果abc中含有其他文件,则不能删除 rm -r ...
- php将base64字符串转换为图片
昨天用一个js插件 [链接]: http://www.erdangjiade.com/js/910.html 实行了图片裁剪并预览,不过它生产的图片资源是一个base64字符串,不好保存后来在网上找到 ...
- noi 求分数序列和 x
求分数序列和 总时间限制: 1000ms 内存限制: 65536kB 描述 有一个分数序列 q1/p1,q2/p2,q3/p3,q4/p4,q5/p5,.... ,其中qi+1= qi+ pi, ...