set()集合的概念与一般操作
1.概念
set集合是python的一种基本数据类型,其特点为:
1.元素不重复(可以利用这条性质除去重复元素)
2.在集合中无序
3.元素可hash(int,str,bool,tuple)
set集合的表示方法为:
set ={}
2.一般操作
1.增加
set.add() #把被添加数据添加到集合的开头

%E9%9B%86%E5%90%88%E7%9A%84%E6%A6%82%E5%BF%B5%E4%B8%8E%E4%B8%80%E8%88%AC%E6%93%8D%E4%BD%9C/addset1.png?lastModify=1560253898)
set.update() #把元素迭代无序添加到集合中

%E9%9B%86%E5%90%88%E7%9A%84%E6%A6%82%E5%BF%B5%E4%B8%8E%E4%B8%80%E8%88%AC%E6%93%8D%E4%BD%9C/upset1.png?lastModify=1560253898)
2.删除
pop()
remove()
clear()
del set

%E9%9B%86%E5%90%88%E7%9A%84%E6%A6%82%E5%BF%B5%E4%B8%8E%E4%B8%80%E8%88%AC%E6%93%8D%E4%BD%9C/delset1.png?lastModify=1560253898)
这里注意pop()不能指定变量否则会报错
3.修改
由于set集合中的元素没有索引,因此没法定位set中的元素,因此set集合中的修改只能先删除 再添加

%E9%9B%86%E5%90%88%E7%9A%84%E6%A6%82%E5%BF%B5%E4%B8%8E%E4%B8%80%E8%88%AC%E6%93%8D%E4%BD%9C/modify1.png?lastModify=1560253898)
4.查询
set是一个可迭代对象,可以使用for循环查询
for el in s:
print(el)
5.其他操作
s1 = {"刘能", "赵四", "皮长山"}
s2 = {"刘科长", "冯乡长", "皮长山"}
1.交集 s1 & s2
print(s1 & s2) # {"皮长山"}
或者
print(s1.intersection(s2)) # {"皮长山"}
2.并集 s1 | s2 (无序)
print(s1 | s2) # {"刘能", "赵四", "皮长山","刘科长", "冯乡长"}
或者
print(s1.union(s2)) # {"刘能", "赵四", "皮长山","刘科长", "冯乡长"}
3.差集 s1 - s2
#将被差集合中存在于差集合的元素删除,即s1删除s1与s2的交集
print(s1 - s2) # {'赵四', '刘能'}
或者
print(s1.difference(s2)) # {'赵四', '刘能'}
4.反交集 s1 ^ s2
# 删除两个集合的交集然后s1与s2并集
print(s1 ^ s2) # {'冯乡长', '刘能', '刘科长', '赵四'}
或者
print(s1.symmetric_difference(s2)) # {'冯乡长', '刘能', '刘科长', '赵四'}
5.子集 s1 < s2
#判断集合s1是否是集合s2的子集
s1 = {"刘能", "赵四"}
s2 = {"刘能", "赵四", "皮长山"}
print(s1 < s2) # True
或者
print(s1.issubset(s2)) # True
6.超集 s1 > s2
#判断s1是否是s2的超集(是否包含s2)
print(s1 > s2) #False
或者
print(s1.issuperset(s2)) #False
7.使set集合变成一个可hash的
s = frozenset(["赵本山", "刘能", "皮长山", "长跪"])
dic = {s:'123'} # 可以正常使用了
print(dic) #{ frozenset(["赵本山", "刘能", "皮长山", "长跪"]) : '123'}
set()集合的概念与一般操作的更多相关文章
- Python 集合set概念和操作
# 集合 # 概念 # 无序的, 不可随机访问的, 不可重复的元素集合 # 与数学中集合的概念类似,可对其进行交.并.差.补等逻辑运算 # 分为可变集合和非可变集合 # set # 为可变集合 # 增 ...
- 关于foreach中对集合执行Add或者Remove操作引发枚举值被修改异常
方法传入集合List<string> ids; 执行操作后再次循环引发异常 foreach (string id in ids) { ids.Add("a"); } 更 ...
- 编写高质量代码改善C#程序的157个建议——建议25:谨慎集合属性的可写操作
建议25:谨慎集合属性的可写操作 如果类型的属性中有集合属性,那么应该保证属性对象是由类型本身产生的.如果将属性设置为可写,则会增加抛出异常的几率.一般情况下,如果集合属性没有值,则它返回的Count ...
- AJPFX总结集合的概念
//java 中集合的概述========================================================== 集合的概念: 为 ...
- MongoDB数据库、集合、文档的操作
MongoDB系列第一课:MongDB简介 MongoDB系列第二课:MongDB环境搭建 MongoDB系列第三课:MongDB用户管理 MongoDB系列第四课:MongoDB数据库.集合.文档的 ...
- java:在Conllection接口中实际上也规定了两个可以将集合变成对象数组的操作
在Conllection接口中实际上也规定了两个可以将集合变成对象数组的操作 //在Conllection接口中实际上也规定了两个可以将集合变成对象数组的操作 List<String> a ...
- 原创】Java并发编程系列2:线程概念与基础操作
[原创]Java并发编程系列2:线程概念与基础操作 伟大的理想只有经过忘我的斗争和牺牲才能胜利实现. 本篇为[Dali王的技术博客]Java并发编程系列第二篇,讲讲有关线程的那些事儿.主要内容是如下这 ...
- day3-Python集合、函数、文件操作,python包的概念
本节大纲: 1 python程序由包(package).模块(module)和函数组成.包是由一系列模块组成的集合.模块是处理某一类问题的函数和类的集合. 2 包就是一个完成特定任务的工具箱. 3 包 ...
- MongoDB快速入门学习笔记2 MongoDB的概念及简单操作
1.以下列举普通的关系型数据库和MongoDB数据库简单概念上的区别: 关系型数据库 MongoDB数据库 说明 database database 数据库 table collection 数据库表 ...
随机推荐
- PHP 设计模式--序言
面向对象是PHP5之后增加的功能,是PHP走向现代语言的一个标志. 在过程式设计时代,PHP以学习成本低.入门快的特点赢得很多WEB开发者的青睐,但同时也限制了PHP的发展. 借鉴Java和C++之后 ...
- vue踩坑之路--点击按钮改变div样式
有时候,我们在做项目的时候,想通过某个按钮来改变某个div样式,那么可以通过以下代码实现: <!DOCTYPE html> <html> <head> <me ...
- MATLAB仿真学习笔记(一)
一.Simulink概述 1.特点 simulink是对动态系统进行建模.仿真和综合分析的图形化软件,可以处理线性和非线性.离散.连续和混合系统,也可以处理单任务和多任务系统,并支持多种采样频率的系统 ...
- [转]linux内存管理源码分析 - 页框分配器
转自: http://www.cnblogs.com/tolimit/ 阅读之前,先敬原作者一杯! 分段和分页 先看一幅图 也就是我们实际中编码时遇到的内存地址并不是对应于实际内存上的地址,我们编码中 ...
- 1040 有几个PAT (25 分)
题目链接:1040 有几个PAT (25 分) 做这道题目,遇到了新的困难.解决之后有了新的收获,甚是欣喜! 刚开始我用三个vector数组存储P A T三个字符出现的位置,然后三层for循环,根据字 ...
- Centos6防火墙基本配置
1. 允许x.x.x.x访问本机 iptables -I INPUT -p tcp -j DROP #若要添加多了ip,该条也是只执行一次 iptables -I INPUT -s x.x.x.x - ...
- zk strom 本地环境启动命令
bin/zkServer.sh statusbin/zkServer.sh startbin/storm nimbus &bin/storm ui &bin/storm drpc &a ...
- 升级 Linux 内核版本(编译源代码)
升级内核版本(自己编译源码) 从 linux 官网 https://www.kernel.org/ 下载内核源码 解压 tar -xvf linux-4.16.8.tar.xz cd linux-4. ...
- (ccf)201709-4 通信网络
#include<iostream> #include<memory.h> #include<stack> #include<string> #incl ...
- bcd(Binary-Coded Decimal缩写)
Binary-Coded Decimal,简称BCD,称BCD码或二-十进制代码,亦称二进码十进数.是一种二进制的数字编码形式,用二进制编码的十进制代码.这种编码形式利用了四个位元来储存一个十进制的 ...