Python开发——数据类型【集合】
集合的定义
由一个或多个确定的元素所构成的整体
可变集合
s=set('hello')
print(s) # {'e', 'l', 'o', 'h'}
s=set(['alex','alex','Lucy'])
print(s) # {'alex', 'Lucy'}
s = {1,2,3,4,5,6,7}
print(s)
不可变集合
s = {1,2,3,4,5,6,7}
print(s) # {1, 2, 3, 4, 5, 6, 7}
# 改为不可变集合
fs = frozenset(s)
print(fs) # frozenset({1, 2, 3, 4, 5, 6, 7})
集合的特性
1、确定性(元素必须可hash)
2、互异性(去重)
3、无序性(集合中的元素没有先后之分,如集合{3,4,5}和{3,5,4}算作同一个集合)
注:集合存在的意义:去重和关系运算
去重
p_li = [1,2,3,4,3,5]
# 去重
p_s = set(p_li)
print(p_s) # {1, 2, 3, 4, 5}
集合的关系运算
p_s1 = {'张三','王五','李四'}
p_s2 = {'李四','王五','赵六'}
# 交集
print(p_s1.intersection(p_s2)) # {'李四', '王五'}
print(p_s1&p_s2) # {'李四', '王五'}
# 并集
print(p_s1.union(p_s2)) # {'张三', '李四', '王五', '赵六'}
print(p_s1|p_s2) # {'张三', '李四', '王五', '赵六'}
# 差集【A-交集】
print(p_s1.difference(p_s2)) # {'张三'}
print(p_s1-p_s2) # {'张三'}
# 对称差集【并集-交集】
print(p_s1.symmetric_difference(p_s2)) # {'赵六', '张三'}
print(p_s1^p_s2) # {'赵六', '张三'}
# A更新为交集
# p_s1.intersection_update(p_s2)
# A更新为差集
# p_s1.difference_update(p_s2)
# A更新为对称差集
# p_s1.symmetric_difference_update()
# print(p_s1)
集合的内置函数
常见
s = {1,2,3,4,5,6,7}
print(s) # {1, 2, 3, 4, 5, 6, 7}
# 添加
s.add('a')
print(s) # {1, 2, 3, 4, 5, 6, 7, 'a'}
# 清空
s.clear()
print(s) # set()
s = {1,2,3,4,5,6,7}
# 随机删除
s.pop()
print(s)
s = {1,2,3,4,5,6,7}
# 指定删除,若无报错
s.remove(5)
print(s)
s = {1,2,3,4,5,6,7}
# 指定删除,若无不报错
s.discard(8)
print(s)
补充
s = {1,2}
print(s) # {1, 2}
# 单个元素的增加
s.add(3)
print(s) # {1, 2, 3}
# 多个元素的增加
s.update([3,4],[7,8])
print(s) # {1, 2, 3, 4, 7, 8}
s.update('hello')
print(s) # {1, 2, 3, 4, 'o', 7, 8, 'e', 'l', 'h'}
其他
p_s1 = {'张三','王五','李四'}
p_s2 = {'李四','王五','赵六'}
# 判断两个集合是不是相交
print(p_s1.isdisjoint(p_s2))
# 判断集合是不是包含其他集合
print(p_s1.issuperset(p_s2))
# 判断集合是不是被其他集合包含
print(p_s2.issubset(p_s2))
Python开发——数据类型【集合】的更多相关文章
- python基础数据类型--集合(set)
python基础数据类型--集合(set) 集合是一个数学概念由一个或多个确定的元素所构成的整体叫做集合 集合中的三个特征 1.确定性(元素必须死可hash) 2.互异性(去重) 3.无序性(集合中的 ...
- Python开发——数据类型【字符串】
字符串定义 字符串是一个有序的字符的集合,用于存储和表示基本的文本信息 在Python中加了引号的字符,都被认为是字符串! 单引号.双引号.多引号之间的区别? 答案:单双引号没有区别 多引号的作用? ...
- Python开发——数据类型【字典】
字典的定义 # Python语言中唯一的类型映射 # 键与值之间用“:”分开 # 项与项之间用“,”分开 person = {"name":"yuan",&qu ...
- Python之路(第五篇) Python基本数据类型集合、格式化、函数
一.变量总结 1.1 变量定义 记录某种状态或者数值,并用某个名称代表这个数值或状态. 1.2 变量在内存中的表现形式 Python 中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是 ...
- Python基本数据类型集合、格式化、函数
一.变量总结 1.1 变量定义 记录某种状态或者数值,并用某个名称代表这个数值或状态. 1.2 变量在内存中的表现形式 Python 中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是 ...
- python基本数据类型集合set操作
转:https://www.cnblogs.com/tina-python/p/5468495.html 一.集合的定义 set集合,是一个无序且不重复的元素集合. 集合对象是一组无序排列的可哈希的值 ...
- Python开发——数据类型【列表】
列表的定义 中括号[]内以逗号分隔开,按照索引,存放各种数据类型,每个位置代表一个元素 list_t = ['张三','Lucy',123] print(list_t) # ['张三', 'Lucy' ...
- Python开发——4.集合和字符串拼接
一.集合(set) 1.集合的特性: 不同元素组成.元素是无序排列的可hash值 2.集合转为列表 s1 = {11,"hechouzi",(11,22,33)} names = ...
- python基本数据类型——集合
集合 无序可变序列,集合中元素不允许重复,即每个元素都是唯一的 集合中的元素按照升序排列 # 创建集合 >>aset = set([0,2,4,5,7,2,3,5,9,0]) >&g ...
随机推荐
- DevExpress.XtraGrid.GridControl中数据源的绑定问题
在利用DevExpress.XtraGrid.GridControl作为一个可编辑的表格控件时,在利用控件之前,先将一个初始化的DataTable对象作为GridControl的数据源进行绑定.可是在 ...
- 如何在hanlp词典中手动添加未登录词
我们在使用hanlp词典进行分词的时候,难免会出现分词不准确的情况,原因是由于内置词典中并没有收录当前的这个词,也就是我们所说的未登录词,只要把这个词加入到内置词典中就可以解决类似问题,如何操作,下 ...
- 学会数据库读写分离、分表分库——用Mycat
系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据库的处理本身优化也是非常重要的.主从.热备.分表分库等都是系统发展迟早会遇到的技术问题问题.Mycat是一 ...
- react高阶组件
高阶组件 为了提高组件复用性,在react中就有了HOC(Higher-Order Component)的概念.所谓的高阶组件,其本质依旧是组件,只是它返回另外一个组件,产生新的组件可以对属性进行包装 ...
- Java中常用类(包装类扩展知识)
Java常用类有哪些? 八大基本数据类型的包装类 包装类均位于java.lang包中,包装类和基本数据类型的对应关系如下表: 基本数据类型 包装类 byte Byte boolean Boolean ...
- vue源码核心部分
1.模板编译 初始化时做的:template ==parse()==>ASTtree ==generate()==>render函数 ==> mount(调用dom方法) 每次 ...
- TypeScript type 类型别名
//6,类型别名 /**类型别名不能出现在声明右侧的任何地方. * 接口 vs. 类型别名 * 另一个重要区别是类型别名不能被extends和implements(自己也不能extends和imple ...
- scala spark-streaming整合kafka (spark 2.3 kafka 0.10)
Maven组件如下: ) { System.err.println() } StreamingExamples.setStreamingLogLevels() )) ) { System.) } )) ...
- php post和get请求
1. POST请求 public function post($url, $params = array()) { /*初始化*/ $ch = curl_init(); /*设置变量*/ curl_s ...
- fastjson的@JSONField注解
@JSONField作用:在字段和方法上1.Field:@JSONField作用在Field时,name可以定义输入key的名字,反序列化的时 值不会赋值到属性上2.作用在setter和getter方 ...