Python3.5集合及其常见运算实例详解


Posted in Python onMay 01, 2019

本文实例讲述了Python3.5集合及其常见运算。分享给大家供大家参考,具体如下:

1、集合的定义:集合是一个无序的、无重复的数据的数据组合。

2、集合的特征:

(1)去除重复元素:将一个列表变成集合就可实现去重。

(2)测试关系:测试两组数据之间交集、并集、差集等关系。

3、集合常用的操作:

(1)去重复:将列表变成集合,形式:集合=set(列表)

list_1 = [1,3,5,3,6,8,9,6,8,1]
list_1 = set(list_1)
print(list_1,type(list_1))

运行结果:

{1, 3, 5, 6, 8, 9} <class 'set'>

(2)测试两个集合的交集——形式为:print((集合1).intersection(集合2))     或  print(集合1 & 集合2)

list_1 = [1,3,5,3,6,8,9,6,8,1]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,4,6,8,9])
print(list_1,list_2)
print(list_1.intersection(list_2))  #两个集合的交集

运行结果:

{1, 3, 5, 6, 8, 9} {2, 4, 5, 6, 8, 9}
{8, 9, 5, 6}

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,6,8,9,0])
print(list_1,list_2)
print(list_1 & list_2)  #两个集合的交集

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9} {0, 2, 5, 6, 8, 9}
{8, 9, 2, 5, 6}

(3)测试两个集合的并集(合并两个集合并去除重复元素)——形式为:print((集合1).union(集合2))   或    集合1 | 集合2

list_1 = [1,3,5,3,6,8,9,6,8,1]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,4,6,8,9])
print(list_1,list_2)
print(list_1.union(list_2))     #两个集合的并集

运行结果:

{1, 3, 5, 6, 8, 9} {2, 4, 5, 6, 8, 9}
{1, 2, 3, 4, 5, 6, 8, 9}

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,6,8,9,0])
print(list_1,list_2)
print(list_1 | list_2)  #两个集合的并集

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9} {0, 2, 5, 6, 8, 9}
{0, 1, 2, 3, 4, 5, 6, 8, 9}

(4)测试两个集合的差集——形式为:print((集合1).difference(集合2))    或者   print((集合2).difference(集合1))

list_1 = [1,3,5,3,6,8,9,6,8,1]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,4,6,8,9])
print(list_1,list_2)
print(list_1.difference(list_2))  #集合1对集合2的差集
print(list_2.difference(list_1))  #集合2对集合1的差集

运行结果:

{1, 3, 5, 6, 8, 9} {2, 4, 5, 6, 8, 9}
{1, 3}
{2, 4}

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,6,8,9,0])
print(list_1,list_2)
print(list_1 - list_2)  #集合1对集合2的差集
print(list_2 - list_1)  #集合2对集合1的差集

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9} {0, 2, 5, 6, 8, 9}
{1, 3, 4}
{0}

(5)测试一个集合是否为另一个集合的子集——形式为:print(集合1.issubset(集合2))   或者   print(集合2.issubset(集合1))

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,4,6,8,9])
print(list_1,list_2)
print(list_1.issubset(list_2))   #集合1是否为集合2的子集
print(list_2.issubset(list_1))   #集合2是否为集合1的子集

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9} {2, 4, 5, 6, 8, 9}
False
True

(6)测试一个集合是否为另一个集合的父集——形式为:print(集合1.issuperset(集合2))   或者   print(集合2.issuperset(集合1))

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,4,6,8,9])
print(list_1,list_2)
print(list_1.issuperset(list_2))  #集合1是否为集合2的父集
print(list_2.issuperset(list_1))  #集合2是否为集合1的父集

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9} {2, 4, 5, 6, 8, 9}
True
False

(7)测试两个集合的对称差集——形式为:print(集合1.symmetric_difference(集合2))   或  print(集合1 ^ 集合2)

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([22,5,4,65,8,9,3])
print(list_1,list_2)
print(list_1.symmetric_difference(list_2))  #取两个集合的对称差集(互相都没有的元素)

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9} {65, 3, 4, 5, 8, 9, 22}
{65, 1, 22, 2, 6}

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([2,5,6,8,9,0])
print(list_1,list_2)
print(list_1 ^ list_2)  #取两个集合的对称差集

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9} {0, 2, 5, 6, 8, 9}
{0, 1, 3, 4}

(8)测试两个集合的交集,没有交集返回True;有交集返回False——形式为:print(集合1.isdisjoint(集合2))

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
list_2 = set([22,54,65,81,10,0])
print(list_1,list_2)
print(list_1.isdisjoint(list_2))  #两个集合没有交集返回True

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9} {0, 65, 10, 81, 54, 22}
True

(9)给集合添加一项元素——调用:要添加内容的集合.add(添加内容)

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
print(list_1)
list_1.add(54)  #添加
print(list_1)

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9}
{1, 2, 3, 4, 5, 6, 8, 9, 54}

(10)给集合添加多项元素——调用:要添加内容的集合.update(添加内容)

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
print(list_1)
list_1.update([11,22,33])
print(list_1)

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9}
{1, 2, 3, 4, 5, 6, 33, 8, 9, 11, 22}

(11)给集合删除一项元素——调用:要删除内容的集合.remove(删除内容)  注:删除的元素不存在会报错

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
print(list_1)
list_1.remove(1)
print(list_1)

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9}
{2, 3, 4, 5, 6, 8, 9}

随意删除集合里的一个元素并将删除的元素返回——调用:print(集合.pop())

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
print(list_1)
print(list_1.pop())
print(list_1.pop())
print(list_1.pop())

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9}
1
2
3

删除集合中指定的一项元素——调用:集合.discard(删除元素)   注:删除的元素不存在时会输出None,不会报错

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
print(list_1)
print(list_1.discard(23))
list_1.discard(3)
print(list_1)

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9}
None
{1, 2, 4, 5, 6, 8, 9}

(12)求集合的长度——调用:print(len(集合))

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
print(list_1)
print(len(list_1))

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9}
8

(13)测试x是否为s的成员(适用于字符串、列表、字典、集合)——形式为:x in s
测试x是否不是s的成员(适用于字符串、列表、字典、集合)——形式为:x noti n  s

list_1 = [1,3,5,2,6,8,9,6,8,4]
list_1 = set(list_1)  #把列表变成集合,去重
print(list_1)
print(3 in list_1)
print(7 not in list_1)

运行结果:

{1, 2, 3, 4, 5, 6, 8, 9}
True
True

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python生成随机数的方法
Jan 14 Python
Python中replace方法实例分析
Aug 20 Python
Python实现FTP上传文件或文件夹实例(递归)
Jan 16 Python
基于Python __dict__与dir()的区别详解
Oct 30 Python
CentOS7下python3.7.0安装教程
Jul 30 Python
Python实现FTP文件传输的实例
Jul 07 Python
pandas的相关系数与协方差实例
Dec 27 Python
tensorflow之tf.record实现存浮点数数组
Feb 17 Python
Matplotlib使用字符串代替变量绘制散点图的方法
Feb 17 Python
Python批量修改xml的坐标值全部转为整数的实例代码
Nov 26 Python
python 模块导入问题汇总
Feb 01 Python
python绘制高斯曲线
Feb 19 Python
Django给admin添加Action的步骤详解
May 01 #Python
Django重置migrations文件的方法步骤
May 01 #Python
OpenCV-Python 摄像头实时检测人脸代码实例
Apr 30 #Python
浅谈Python编程中3个常用的数据结构和算法
Apr 30 #Python
python通过paramiko复制远程文件及文件目录到本地
Apr 30 #Python
python实现定时压缩指定文件夹发送邮件
Dec 22 #Python
python定时复制远程文件夹中所有文件
Apr 30 #Python
You might like
PHP第一季视频教程(李炎恢+php100 不断更新)
2011/05/29 PHP
PHP7之Mongodb API使用详解
2015/12/26 PHP
php图片添加水印例子
2016/07/20 PHP
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
laravel框架实现后台登录、退出功能示例
2019/10/31 PHP
PhpStorm+xdebug+postman调试技巧分享
2020/09/15 PHP
JavaScript Array扩展实现代码
2009/10/14 Javascript
asp.net刷新本页面的六种方法总结
2014/01/07 Javascript
javascript数组遍历for与for in区别详解
2014/12/04 Javascript
详解JavaScript对象序列化
2016/01/19 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
2016/11/10 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
vue 路由嵌套高亮问题的解决方法
2018/05/17 Javascript
在Create React App中使用CSS Modules的方法示例
2019/01/15 Javascript
JS实现获取数组中最大值或最小值功能示例
2019/03/02 Javascript
Vue 动态添加路由及生成菜单的方法示例
2019/06/20 Javascript
layui数据表格实现重载数据表格功能(搜索功能)
2019/07/27 Javascript
使用vue实现多规格选择实例(SKU)
2019/08/23 Javascript
vuex刷新后数据丢失的解决方法
2020/10/18 Javascript
JavaScript实现点击自制菜单效果
2021/02/02 Javascript
深入解析Python中的线程同步方法
2016/06/14 Python
用Eclipse写python程序
2018/02/10 Python
Python切片操作深入详解
2018/07/27 Python
CSS3实现酷炫的3D旋转透视效果
2019/11/21 HTML / CSS
解决html5中video标签无法播放mp4问题的办法
2017/05/07 HTML / CSS
澳大利亚领先的时尚内衣零售商:Bras N Things
2020/07/28 全球购物
什么是唯一索引
2015/07/05 面试题
DataList 能否分页,请问如何实现?
2015/05/03 面试题
文明之星事迹材料
2014/05/09 职场文书
个人四风问题原因分析及整改措施
2014/09/28 职场文书
医院护士工作检讨书
2014/10/26 职场文书
项目安全员岗位职责
2015/02/15 职场文书
《包身工》教学反思
2016/02/23 职场文书
营销策划分析:怎么策划才能更好销量产品?
2019/09/04 职场文书
德劲DE1105机评
2022/04/05 无线电