Python集合类型的操作与应用
Python集合类型的操作与应用
一、Python集合类型
Python中的集合类型是一个包含0个或多个数据项的无序的、不重复的数据组合,其中,元素类型只能是固定数据类型,如整数、浮点数、字符串、元组等,相反,如列表、字典和集合类型本身都是可变数据类型,因此不能作为集合元素使用。
1.无序性
集合是无序组合,没有索引和位置的概念,不能分片,集合中的元素可以动态增加或删除。集合用大括号“{}”表示。
s={1,2,3,'a','b',(5,'c')}
print(s)

由上例可知,集合元素打印后的顺序和定义顺序可以不同。
2.不重复性
集合元素是独一无二的,使用集合类型可以过滤掉重复元素。set(x)函数用于生成集合,输入任意组合数据类型的参数,返回一个无序不重复的集合。
s=set('omg')
print(s)

s=set(('human','animal','water','oil'))
print(s)

二、集合类型的关系操作
1.S-T或S.difference(T):S与T的差集。返回一个新集合,包括在集合S中但不在集合T中的元素。
S={1,2,3,4}
T={2,3,4,5}
print(S-T)

或者
S={1,2,3,4}
T={2,3,4,5}
print(S.difference(T))

S={1,2,3,4}
T={2,3,4,5}
print(T-S)

或者
S={1,2,3,4}
T={2,3,4,5}
print(T.difference(S))

2.S&T或S.intersection(T):S与T的交集。返回一个新集合,包括同时在集合S和集合T中的元素。
S={1,2,3,4}
T={2,3,4,5}
print(S&T)

或者
S={1,2,3,4}
T={2,3,4,5}
print(S.intersection(T))

3.S|T或S.union(T):S与T的并集。返回一个新集合,包括集合S和集合T中的所有元素。
S={1,2,3,4}
T={2,3,4,5}
print(S|T)

或者
S={1,2,3,4}
T={2,3,4,5}
print(S.union(T))

4.S^T或S.symmetric_difference(T):S与T的对等差集,包括集合S和集合T中的元素,但不包括同时在其中的元素。
S={1,2,3,4}
T={2,3,4,5}
print(S^T)

或者
S={1,2,3,4}
T={2,3,4,5}
print(S.symmetric_difference(T))

5.S<=T或S.issubset(T):如果S与T相同或S是T的子集,返回True,否则返回False,可以用S<T判断S是否是T的真子集。
S={1,2,3}
T={1,2,3,4,5}
print(S<=T)

或者
S={1,2,3}
T={1,2,3,4,5}
print(S.issubset(T))

6.S>=T或S.issuperset(T):如果S与T相同或S是T的父集,返回True,否则返回False,可以用S>T判断S是否是T的真父集。
S={1,2,3}
T={1,2,3,4,5}
print(S>=T)

或者
S={1,2,3}
T={1,2,3,4,5}
print(S.issuperset(T))

三、集合类型的操作函数或方法
1.S.add(x):如果数据项x不在集合S中,将x增加到s中。
S=set((1,2,3,'omg','ok','yes')) S.add(4) print(S)

2.S.clear():移除S中的所有数据项。
S=set((1,2,3,'omg','ok','yes')) S.clear() print(S)

3.S.copy():返回集合S的一个副本。
S=set((1,2,3,'omg','ok','yes')) S.copy() print(S)

4.S.pop():随机返回集合中S的一个元素,如果S为空,产生KeyError异常。
S=set((1,2,3,'omg','ok','yes')) T=S.pop() print(T)

#打印除被pop出的元素以外的所有元素的集合 S=set((1,2,3,'omg','ok','yes')) S.pop() print(S)

#如果S为空,产生KeyError异常 S=set(()) T=S.pop() print(T)

5.S.discard(x):如果数据项x在集合S中,移除该元素;如果x不在集合S中,不报错。
S=set((1,2,3,'omg','ok','yes'))
S.discard('omg')
print(S)

#如果x不在集合S中,不报错
S=set((1,2,3,'omg','ok','yes'))
S.discard('python')
print(S)

6.S.remove(x):如果数据项x在集合S中,移除该元素;如果x不在集合S中,产生KeyError异常。
S=set((1,2,3,'omg','ok','yes'))
S.remove('omg')
print(S)

#如果x不在集合S中,产生KeyError异常
S=set((1,2,3,'omg','ok','yes'))
S.remove('python')
print(S)

7.S.isdisjoint(T):如果集合S与集合T没有相同元素,返回True,否则返回False。
S=set((1,2,3,'omg','ok','yes')) T=set((4,5,6,'do','true')) print(S.isdisjoint(T))

S=set((1,2,3,'omg','ok','yes')) T=set((1,2,5,6,'do','ok','true')) print(S.isdisjoint(T))

8.len(S):返回集合S的元素个数。
S=set((1,2,3,'omg','ok','yes')) print(len(S))

9.x in S:如果x是集合S的元素,返回True,否则返回False。
S=set((1,2,3,'omg','ok','yes')) print(3 in S)

S=set((1,2,3,'omg','ok','yes'))
print('python' in S)

10.x not in S:如果x不是集合S的元素,返回True,否则返回False。
S=set((1,2,3,'omg','ok','yes')) print(3 not in S)

S=set((1,2,3,'omg','ok','yes'))
print('python' not in S)

集合类型主要用于成员关系测试、元素去重和删除数据项。
1.成员关系测试
S={1,2,3,'omg','ok','yes'}
T='omg' in S
print(T)

2.元素去重
S={1,2,3,'omg','ok','yes',2,'omg'}
T=set(S)
print(T)

3.删除数据项
#去重同时删除数据项
S={1,2,3,'omg','ok','yes',2,'omg'}
T=set(S)
P=tuple(T-{'ok'})
print(P)

Python集合类型的操作与应用的更多相关文章
- redis:set集合类型的操作(无序集合)
1. set集合类型的操作(无序集合) 集合具有无序性(没有顺序).确定性(描述是确定的).唯一性(没有重复的元素) 1.1. sadd key member [member ...] 语法:sadd ...
- redis:order set有序集合类型的操作(有序集合)
1. order set有序集合类型的操作(有序集合) 有序集合是在无序集合的基础上加了一个排序的依据,这个排序依据叫score,因此声明一个集合为有序集合的时候要加上score(作为排序的依据) 1 ...
- python集合类型
集合类型简介 集合也是容器,其内元素都是无序.唯一.不可变的.它常用来做成员测试.移除重复数据.数据计算(比如交集.并集.差集). 集合Set是dict的无value版.集合也使用大括号包围: > ...
- 遇见Python集合类型
Python目前有两种内置集合类型,set和frozenset. Ⅰ.两者区别 set是可变的,没有哈希值,其内容可以使用add()和remove()这样的方法来改变,所以不能被用作字典的键或其他集合 ...
- 『无为则无心』Python序列 — 22、Python集合及其常用操作
目录 1.Python集合特点 2.Python集合的创建 3.操作集合常用API (1)增加数据 @1.add()方法 @2.update()方法 (2)删除数据 @1.remove()方法 @2. ...
- 代码与图详解性能之Python集合类型(list tuple dict set generator)
Python内嵌的集合类型有list.tuple.set.dict. 列表list:看似数组,但比数组强大,支持索引.切片.查找.增加等功能. 元组tuple:功能跟list差不多,但一旦生成,长度及 ...
- Python集合的常用操作
字典常用的就是,他的去重. set集合是python的一个基本数据类型. set中的元素是不重复的.⽆无序的.⾥面的元素必须是可hash的(int, str, tuple,bool). 我们可以这样来 ...
- python集合set相关操作
定义: 1.不同元素组成 2.无序 3.集合中的元素必须是不可变类型 创建集合 1 s = {1,2,3,4,5,6,7,8} 1.定义可变集合 1 2 3 >>> set_test ...
- 第3章 02 python字符串类型及操作
字符串切片 取字符串从结尾到开头,相当于字符串逆序 转义符 转义符表达特定字符的本意 转义符 \“ ----> ” 字符串操作符 例子: 获取星期字符串 定义星期 获取用户 ...
随机推荐
- 最新设计打样制作完成的FPGA视频开发板VIP—V101
设计目的:1.摄像头驱动(30w-500w mipi接口)2.VGA显示器驱动3.USB2.0视频采集4.tft液晶接口(ttl.lvds驱动)5.视频.图像处理(算法验证)6.各种视频接口处理(av ...
- 【关注图像采集视频传输】之 Cy3014 usb3.0 FIFO接口
CYUSB3014延续了CY7C68013A最吸引人的地方,那就是实现高速数据传输的Slave FIFO接口,应用这种模式,据说数据传输率可以达到320MB/s. 同USB2.0的芯片CY7C6801 ...
- 简单了解一下K8S,并搭建自己的集群
距离上次更新已经有一个月了,主要是最近工作上的变动有点频繁,现在才暂时稳定下来.这篇博客的本意是带大家从零开始搭建K8S集群的.但是我后面一想,如果是我看了这篇文章,会收获什么?就是跟着步骤一步一走吗 ...
- Python3 函数进阶3
目录 匿名函数 定义匿名函数 匿名函数的使用 内置函数 匿名函数 定义匿名函数 我们之前定义的函数都是有名函数, 我们可以通过函数名来调用 匿名函数顾名思义就是一种没有绑定函数名的函数, 使用一次既被 ...
- Java_零碎知识回顾
封装的理解 1.隐藏实现细节,控制对象的访问权限:对外提供公共方法: 隐藏:private 本类可见 继承的理解 ①父类有共性的属性与方法:子类只需要继承,扩展自己独有的属性方法即可,实现了代码的可复 ...
- 深入探索Java设计模式之单例模式
单例模式可确保在给定的时间实例中只能创建一个具有全局访问点的对象.这是面向对象编程中最常用的技术之一.尽管它很简单,但从类设计的角度来看可能是最简单的,但是在尝试实现它们之前,必须先解决一些细微的问题 ...
- 【Ubuntu 16.04.2_64】安装配置SVN
[Ubuntu 16.04.2_64]安装配置SVN 转载:https://www.cnblogs.com/yangchongxing/p/10190549.html 检查是否已安装svn # svn ...
- 搞了一次IE浏览器兼容,我有点奔溃....
浏览器兼容问题(主要时IE上遇到的坑坑坑) caniuse 工具(基本参考作用,实际还是需要测试) (1)安装babel-polyfill基本操作了,IE浏览器没有内置Promise对象,不仅如此,几 ...
- Appium(十):元素定位(加强版)
1. 元素定位 写完上一篇元素定位的博客,发现实用性基本为零.这几天真的烦死我了,一直在找资料,还去看了一遍appium官网文档.最后结合着selenium的定位方法,测试出几种可行的元素定位方法. ...
- Sqoop 抽数报错: java.io.FileNotFoundException: File does not exist
Sqoop 抽数报错: java.io.FileNotFoundException: File does not exist 一.错误详情 2019-10-17 20:04:49,080 INFO [ ...