10、基本数据类型(set)
10.1、集合:
1、集合元素用大括号括起来,用逗号分割每个元素
2、集合的特点:
(1)集合元素的数据类型只能是不可变数据类型,"列表"、"字典"、"集合"、不能作为集合元素
(2)集合元素是不能重复的,如果有重复也会只保留一个
(3)集合是可变数据类型(可以增加,删除元素,无法修改元素)
(4)集合元素是无序排列的
(5)集合元素可以使用for循环进行遍历
10.2、集合的用法:
1、设置集合:
s=set('hello')
print(s)
s=set(['alex','alex','sb'])
print(s)
s={1,2,3,4,5,6}
2、往集合中添加元素:
s={1,2,3,4,5,6}
s.add('s')
s.add('3')
s.add(3)
print(s)
3、清空集合:
s={1,2,3,4,5,6}
s.clear()
print(s)
4、随机删除集合中的元素并返回删除的元素:
s={'lc',1,2,3,4,5,6}
v=s.pop()
print(v)
5、指定删除集合元素:
s={'lc',1,2,3,4,5,6}
s.remove('sb')
s.remove('hello')
#删除元素不存在会报错
s.discard('ch')
#删除元素不存在不会报错
print(s)
6、集合之间的运算:
#例:学校里的学生报读学校开设的两门课程
python_l = ['lc', 'lc1', 'lc1', 'lc']
linux_l = ['lc', 'lc1', 'lc2']
p_s = set(python_l)
l_s = set(linux_l)
print(p_s, l_s)
(1)求交集:
print("交集", p_s.intersection(l_s))
print("交集", p_s & l_s)
#在学校里两门课程都报的人
(2)求并集:
print("并集", p_s.union(l_s))
print("并集", p_s | l_s)
# 在学校里总共有多少人
(3)求差集:
print('差集', p_s - l_s)
print("差集", p_s.difference(l_s))
# 在学校里只报当前课程的人
print('差集', l_s - p_s)
print("差集", l_s.difference(p_s))
# 在学校里只报当前课程的人
(4)求交叉补集:
rint('交叉补集', p_s ^ l_s)
print('交叉补集', p_s.symmetric_difference(l_s))
#在学校了只报了一门课的人
7、判断子集和父集:
s1={1,2}
s2={1,2,3}
print(s1.issubset(s2))
#s1是s2的子集,返回True
print(s2.issubset(s1))
#s2不是是s1的子集,返回False
print(s2.issuperset(s1))
#s2是s1的父集,返回True
8、更新整个集合:
s1 = {1, 2}
s2 = {1, 2, 3}
s1.update(s2)
#更新多个值
print(s1)
9、不可变集合:
s = frozenset('hello')
print(s)
10、在不在乎列表元素排序的前提下使用set对列表进行去重:
names = ['lc', 'lc', 'lc1']
names = list(set(names))
print(names)
10、基本数据类型(set)的更多相关文章
- JavaScript学习10 JS数据类型、强制类型转换和对象属性
JavaScript学习10 JS数据类型.强制类型转换和对象属性 JavaScript数据类型 JavaScript中有五种原始数据类型:Undefined.Null.Boolean.Number以 ...
- Java知多少(10)数据类型及变量
Java 是一种“强类型”的语言,声明变量时必须指明数据类型.变量(variable)占据一定的内存空间.不同类型的变量占据不同的大小. Java中共有8种基本数据类型,包括4 种整型.2 种浮点型. ...
- 10 Python 数据类型—集合
在Python set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法 ...
- Python基础部分:10、数据类型的内置方法和字符编码
目录 一.数据类型内置方法 1.字典dict内置方法 1.1.类型转换 2.字典必须要掌握的方法 2.1.取值方式 2.2.修改内部数据值 2.3.删除数据 2.4.统计字典中键值对个数 2.5.字典 ...
- SQL数据类型介绍
在计算机中数据有两种特征:类型和长度.所谓数据类型就是以数据的表现方式和存储方式来划分的数据的种类. 在SQL Server 中每个变量.参数.表达式等都有数据类型.系统提供的数据类型分为几大类 ...
- JavaSE复习日记 : 八种基本数据类型
/* * 基本数据类型 * * Java里的8种基本数据类型: * byte --- 1 byte = 8 bit; * short --- 2 byte = 16 bit; * int --- 4 ...
- java基础知识—变量、数据类型和运算符
1.变量:存储数据的一个基本单元.2.变量的声明和赋值: 1)声明并赋值;数据类型 变量名=值 例如:int prince=10; 2) 声明.赋值分为两步: 数据类型 变量名: 例如:int=pri ...
- 第二章:python基础,数据类型
"""第二章:python基础,数据类型2.1 变量及身份运算补充2.2 二进制数2.3 字符编码每8位所占的空间位一个比特,这是计算机中最小的表示单位.每8个比特组成一 ...
- 基本数据类型、包装类、String之间的转换
package 包装类; /** *8种基本数据类型对应一个类,此类即为包装类 * 基本数据类型.包装类.String之间的转换 * 1.基本数据类型转成包装类(装箱): * ->通过构造器 : ...
- Access 数据库的数据类型
今天开发数据库通用组件时,做C#数据库类型与Access数据库类型的相互转化时,发现Access中“text”类型的最大长度为255,当长度超过255时,需改用“Memo”类型,但需要注意备注(Mem ...
随机推荐
- [Python] 命名空间&作用域
Python的类语句不会创建实例 类会创建命名空间,通过对象访问类的属性和方法 类不会创建作用域,对方法和属性的引用必须加以限定(如在方法中必须通过self引用实例的属性) class My1(): ...
- Ubuntu 18.04 进入单用户模式修改密码
Ubuntu 18.04 使用单用户模式修改密码 操作步骤 启动Ubuntu 18.04 ,长按 Shift 键(有的可能按 Esc 键:绝大多数按 Shift 键)进入单用户视图,选中 Ubuntu ...
- 一看就懂的 安装完ubuntu 18.04后要做的事情和使用教程
一看就懂的 安装完ubuntu 18.04后要做的事情和使用教程原创CrownP 最后发布于2019-02-05 00:48:30 阅读数 2982 收藏展开1.更改为阿里云的源点击软件和更新 点击其 ...
- Spark SQL 之 RDD、DataFrame 和 Dataset 如何选择
引言 Apache Spark 2.2 以及以上版本提供的三种 API - RDD.DataFrame 和 Dataset,它们都可以实现很多相同的数据处理,它们之间的性能差异如何,在什么情况下该选用 ...
- ssh登录巨慢加速验证
ssh登录巨慢怎么办,设计验证是好的,但是那些验证的确没啥用反而造成了一些不便修改/开启 /etc/ssh/ssh_config这三个参数再重启即可取消验证 StrictHostKeyChecking ...
- [算法] 数据结构 splay(伸展树)解析
前言 splay学了已经很久了,只不过一直没有总结,鸽了好久来写一篇总结. 先介绍 splay:亦称伸展树,为二叉搜索树的一种,部分操作能在 \(O( \log n)\) 内完成,如插入.查找.删除. ...
- Spring的基础配置,以及注解
常用依赖 <dependencies> <!-- https://mvnrepository.com/artifact/org.springframework/spring-webm ...
- 安装Boost库
获取方式 官网下载合适版本:https://www.boost.org/ 此处用的是boost_1_75_0版本 开发环境 推荐使用GCC 7.x.x或以上编译器 安装Boost库 此处采用简易安装, ...
- springboot整合JDBC出现Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'.
今天使用springboot整合JDBC的使用,开始使用的是 com.mysql.jdbc.Driver驱动 结果运行出现此异常 那我们根据提示要求来修改即可 把驱动改成最新的com.mysql.cj ...
- Jmeter- 笔记3 - Jmeter录制功能 / 抓包
http代理服务器录制脚本: 1.新建线程组 2.添加 http代理服务器 元件 3.http代理服务器修改: 1)端口:8899,任意给个无占用的 2)目标控制器:改成刚刚新建的线程组.不改就录制会 ...