当前位置: 首页 > news >正文

python集合的操作符_深入解析Python中的集合类型操作符

cmp(obj1, obj2)--1>2 return i>0

1

repr(obj)/repr('obj')--返回一个对象的字符串表示

str(obj)--返回对象可读性好的字符串表示

type(obj)--返回对象的类型

(2)集合类型操作符(所有的集合类型)

联合( | ) 联合(union)操作和集合的 OR(又称可兼析取(inclusive disjunction))其实是等价的,两个集合的联合是一个新集合,该集合中的每个元素都至少是其中一个集合的成员,即属于两个集合其中之一的成员。联合符号有一个等价的方法:union()。

交集( & ) 可以把交集操作比做集合的AND(或合取)操作。两个集合的交集是一个新集合,该集合中的每个元素同时是两个集合中的成员,即属于两个集合的成员。交集符号有一个等价的方法:intersection()。

差补/相对补集( – ) 两个集合(s 和 t)的差补或相对补集是指一个集合 C,该集合中的元素,只属于集合 s,而不属于集合 t。差符号有一个等价的方法:difference()。

对称差分( ^ ) 和其他的布尔集合操作相似,对称差分是集合的XOR(又称“异或” (exclusive disjunction))。两个集合(s 和 t)的对称差分是指另外一个集合C,该集合中的元素,只能是属于集合 s 或者集合t的成员,不能同时属于两个集合。对称差分有一个等价的方法:symmetric_difference()。

混合集合类型操作 如果左右两个操作数的类型相同,既都是可变集合或不可变集合,则所产生的结果类型是相同的。但如果左右两个操作数的类型不相同(左操作数是 set,右操作数是 frozenset,或相反情况),则所产生的结果类型与左操作数的类型相同 。

注意:加号不是集合类型的运算符。

>>> t | s

frozenset(['c', 'b', 'e', 'h', 'k', 'o', 'p', 's'])

>>> t ^ s

frozenset(['c', 'b', 'e', 'k', 'p'])

>>> s | t

set(['c', 'b', 'e', 'h', 'k', 'o', 'p', 's'])

>>> s ^ t

set(['p', 'b', 'e', 'k', 'c'])

(3)集合类型操作符(仅适用于可变集合)

(Union) Update ( |= ) 这个更新方法从已存在的集合中添加(可能多个)成员,此方法和update()等价。

>>> s = set('cheeseshop')

>>> s |= set('pypi')

>>> s

set(['c', 'e', 'i', 'h', 'o', 'p', 's', 'y'])

保留/交集更新( &= ) 保留(或交集更新)操作保留与其他集合的共有成员,此方法和 intersection_update()等价。

差更新 ( –= ) 对集合s和t进行差更新操作s-=t,差更新操作会返回一个集合,该集合中的成员是集合s去除掉集合t中元素后剩余的元素。此方法

和difference_update()等价。

对称差分更新( ^= ) 对集合s和t进行对称差分更新操作(s^=t),对称差分更新操作会返回一个集合,该集合中的成员仅是原集合s或仅是另一集合t中的成员。此方法和symmetric_difference_update()等价。

相关文章:

  • 一句话解释python的装饰器_如何理解python的描述器和装饰器?
  • 认识COS
  • 康佳lc32es62没声音_康佳LC32ES62有伴音,无图像无字符
  • 解析.Net框架下的XML编程技术
  • java as_Java对象转成AS的VO对象 | 学步园
  • .net2005怎么读string形的xml,不是xml文件。
  • java调用存储过程 oracle_Java调用Oracle存储过程详解
  • 章立民老师北京ASP.NET Ajax技术研讨会获广泛好评
  • java 1.7的新特性_JDK1.7新特性
  • java c3p0 jar包_c3p0-0.9.1.2.jar下载
  • USB枚举详细过程剖析
  • java 死循环排查_java2如何排查线上死循环
  • Java SE 6 中实现 Cookie 功能
  • redis入门java_java面试基础知识-Redis基础
  • java 库 方法内部_java 构造函数内部的多态方法 完全剖析
  • Babel配置的不完全指南
  • docker容器内的网络抓包
  • Fabric架构演变之路
  • Gradle 5.0 正式版发布
  • js作用域和this的理解
  • Spring-boot 启动时碰到的错误
  • STAR法则
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 基于组件的设计工作流与界面抽象
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 7行Python代码的人脸识别
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • (1)(1.9) MSP (version 4.2)
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (笔试题)合法字符串
  • (层次遍历)104. 二叉树的最大深度
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (十)T检验-第一部分
  • (算法)Travel Information Center
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .apk文件,IIS不支持下载解决
  • .bat文件调用java类的main方法
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • @ModelAttribute 注解
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)
  • [Android View] 可绘制形状 (Shape Xml)
  • [Android] Android ActivityManager
  • [Angular 基础] - 表单:响应式表单
  • [Angular 基础] - 数据绑定(databinding)
  • [AUTOSAR][诊断管理][ECU][$37] 请求退出传输。终止数据传输的(上传/下载)
  • [BPU部署教程] 教你搞定YOLOV5部署 (版本: 6.2)
  • [docker] Docker的数据卷、数据卷容器,容器互联
  • [dts]Device Tree机制