set集合天生具有去重功能

1、创建集合,集合的value类型:string、tuple、frozenset、数字等不可变类型;

 s1 =set()#空集合
s2=set("")
s3=set(["xue","zhi","qian"])
s4={"","","","","","","",""}
print(s1)
print(s2)
print(s3)
print(s4) # 以上打印结果是
set()
{'', '', '', '', '', ''}
{'xue', 'zhi', 'qian'}
{'', '', '', '', '', ''}

2、如果要在许多列表中找出相同的项,那么用集合是最好不过的了,用集合只用一行就可以解决,那就是取交集;例如:

(1)第一种方法:

 s2=set("")
s4={"","","","","","","",""}
print(s2&s4)#取交集 # 以上打印结果是
{'', ''}

(2)第二种方法:

 s3=set(["xue","zhi","qian"])
s4={"","","","","","","",""}
print(s3.intersection(s2))#取交集 # 以上打印结果是
set() #集合s2和s3没有交集,所以结果为set()

3、取并集,就是把两个集合合并到一起去重,例如:

(1)第一种方法:

 s2=set("")
s3=set(["xue","zhi","qian"])
print(s2|s3)#取并集 # 以上打印结果是
{'qian', '', 'xue', '', 'zhi', '', '', '', ''}

(2)第二种方法:

s2=set("")
s3=set(["xue","zhi","qian"])
print(s2.union(s3))#取并集 # 以上运行结果是
{'qian', '', 'xue', '', 'zhi', '', '', '', ''}

4、取差集,就是一个集合中有另一个集合中没有的,例如:

(1)第一种方法:

 s5 ={1,2,3}
s6={1,4,6}
print(s5-s6)#取差集,s5中有,s6中没有的
print(s6-s5)#取差集,s6中有,s5中没有的 #以上运行结果是
{2, 3}
{4, 6}

(2)第二种方法:

 s5 ={1,2,3}
s6={1,4,6}
print(s5.difference(s6))#取差集,s5中有,s6中没有的 #以上运行结果是
{2, 3}

5、对称差集,就是俩集合里面都没有的,例如:

(1)第一种方法:

 s5 ={1,2,3}
s6={1,4,6}
print(s5 ^ s6)#取对称差集 #以上运行结果是
{2, 3, 4, 6}

(2)第二种方法:

 s3=set(["xue","zhi","qian"])
s4={"","","","","","","",""}
print(s4.symmetric_difference(s3))#取对称差集 # 以上运行结果是
{'qian', '', '', '', '', '', '', 'zhi', 'xue'}

6、向集合中增加元素,例如:

 s5 ={1,2,3}
s5.add("ss") #加元素
print(s5) #以上运行结果是
{'ss', 1, 2, 3}

7、删除元素

(1)第一种方法:使用pop()随机删除一个

 s6={1,4,6}
s6.pop()#随机删除一个
print(s6) #以上运行结果是
{4, 6}

(2)第二种方法:使用remove()指定删除哪一个元素,例如:

 s5 ={1,2,3,"SS"}
s5.remove("SS")#指定删除哪个
print(s5) #以上运行结果是
{1, 2, 3}

(3)使用update加入一个集合:

 s4={"","","","","","","",""}
s4.update({1,2,3})#把另外一个集合加进去
print(s4) #以上运行结果是
{1, '', '', 2, '', '', 3, '', ''}

8、使用集合练习:校验密码复杂程序;

 import  string
nums_set = set(string.digits)#数字集合
upper_set = set(string.ascii_uppercase)#大写字母集合
lower_set =set(string.ascii_lowercase)#小写字母集合
pun =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:
print("密码输入正确",pwd)
else:
print("密码输入不正确,必须包含大小写字母,数字和特殊符号")

python之set集合操作的更多相关文章

  1. Python基础-set集合操作

    set集合,是一个无序且不重复的元素集合.定义方式类似字典使用{}创建 目前我们学过的数据类型: 1.字符串(str),2.整型(int),3.浮点型(float),4,列表(list) 5.元组(t ...

  2. python字典与集合操作

    字典操作 字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划.字母来查对应页的详细内容. 语法: info = { 's1': "jack", 's3' ...

  3. 转:Python字典与集合操作总结

    转自:http://blog.csdn.net/business122/article/details/7537014 一.创建字典 方法①: >>> dict1 = {} > ...

  4. (Python基础)集合操作

    集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 以下代码演示了去重,增删改查,以及关系测试供参考学习 ...

  5. python numpy 数据集合操作函数

    arrarray([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])arr1array([0, 1, 2, 3, 4])np.intersect1d(arr,arr1)#计算数组ARR A ...

  6. Python 集合set添加删除、交集、并集、集合操作符号

    在Python中集合set是基本数据类型的一种,它有可变集合(set)和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法. 1. ...

  7. Python之路-python(set集合、文本操作、字符编码 )

    一.集合操作(set)                                                                                          ...

  8. python学习笔记:文件操作和集合(转)

    转自:http://www.nnzhp.cn/article/16/ 这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句 ...

  9. Python学习笔记-Day3-set集合操作

    set集合,是一个无序且不重复的元素集合.定义方式类似字典使用{}创建 目前我们学过的数据类型: 1.字符串(str),2.整型(int),3.浮点型(float),4,列表(list) 5.元组(t ...

随机推荐

  1. SPOJ VLATTICE (莫比乌斯反演)

    传送门:https://www.spoj.com/problems/VLATTICE/en/ 题意: 在三维坐标系下,你在点(0,0,0),看的范围是(n,n,n)以内,求你可以看见多少个点没有被遮挡 ...

  2. Python15_包的安装和管理

    pip的安装及简单使用:https://www.cnblogs.com/csucat/p/4897695.html 使用pip手动安装第三方库:https://blog.csdn.net/github ...

  3. 一篇文章带你了解 ZooKeeper 架构

    上一篇文章,我们讲解了 ZooKeeper 入门知识,这篇文章主要讲解下 ZooKeeper 的架构,理解 ZooKeeper 的架构可以帮助我们更好地设计协同服务. 首先我们来看下 ZooKeepe ...

  4. 互联网 Java 工程师进阶知识完全扫盲

    互联网 Java 工程师进阶知识完全扫盲:https://github.com/doocs/advanced-java

  5. $Luogu2680/NOIp2015$ 运输计划

    传送门 $Sol$ 最暴力的做法就是枚举最长链上的边,然后再算一次所有的链长,更新$ans$. 这里要求最大的最小,容易想到二分答案.对于二分的值$mid$,扫一遍所有的链,若链长小于等于$mid$, ...

  6. $ZOJ\ 2432\ Greatest\ Common\ Increasing\ Subsequence$

    传送门 $Description$ 求两个序列的最长公共上升子序列 $Solution$ $f[i][j]$表示$a$序列匹配到$i$和$b$序列匹配到$j$的最长上升序列的长度,这里并不要求$a[i ...

  7. 使用阿里云 ECS 快速部署 WordPress 博客系统

    今天在 阿里云 ECS上 部署了一套 Lamp 系统,建了一个WordPress的网站,把操作过程记录下来,文中所列脚本可以直接应用. 废话不多说直接开动,ECS云服务购买可以点击 阿里云ECS 云主 ...

  8. 还在使用OpenGL ES做渲染,你Out了,赶紧来拥抱Vulkan吧~

    背景介绍 Vulkan是Khronos组织制定的"下一代"开放的图形显示API.是与DirectX12能够匹敌的GPU API标准. Vulkan是基于AMD的Mantle API ...

  9. Web漏洞总结: OWASP Top 10

    本文原创,更多内容可以参考: Java 全栈知识体系.如需转载请说明原处. 开发安全 - OWASP Top 10 在学习安全需要总体了解安全趋势和常见的Web漏洞,首推了解OWASP,因为它代表着业 ...

  10. mui选择器和软键盘冲突解决

    只需要让此节点失焦即可: onfocus="this.blur();"