初学Python——集合及其运算
一、集合定义及其功能
集合是一个无序的、不重复的数据组合,和字典列表一样也是一种数据类型。
集合两个最主要的功能:①去重(把一个列表变成集合,就自动去重了)
②关系测试(测试两组数据之间的交、并、差集等关系)
二、关系测试
首先,如何创建集合?
两种方式:(1)直接创建
a=set([1,8,2,3,5,4,5,3])
(2)将列表转化成集合
list1=[5,9,7,3,6,6,7,95,78,65,102] #创建列表
list1=set(list1) #将列表转化成集合
在这里需要说明,集合是无序的,尽管将集合a输出:print(a),得到的结果是

看上去好像自动做了排序,其实不然,只是集合的数据太少了,输出list1就不是这样了:

1.取两个集合的交集:
两种写法:①intersection()方法
print(list1.intersection(a))
print(a.intersection(list1))
这两种写法没有任何区别,输出结果都是

②数学表示
print(list_1 & a)
2.取并集:
也是两种方法:①union()方法
print("union:",a.union(list_1))
②数学表示
print("union:",a|list_1)
输出结果:

3.取差集:
亦是两种方法:①difference()方法
print("difference:",list_1.difference(a)) #差集(list_1减去交集)
print("difference:",a.difference(list_1)) #差集(a减去交集)
②数学表示
print("list_1 - a :",list_1-a)
print("a - list_1 :",a-list_1)
运行结果:

4.判断是否是父集和子集的关系:
issubset()方法和issuperset()方法
print("issubset:",list_1.issubset(a)) #判断list_1是不是a的子集
print("issuperset:",a.issuperset(list_1)) #判断a是不是List_1的父集
当然,肯定都不是,再创建一个集合试一试
list_2=set([1,3,5])
print(list_2.issubset(a)) #判断list_2是不是a的子集,是则返回True
print(a.issuperset(list_2)) #判断a是不是list_2的父集,不是返回False
运行结果:

5.对称差集:
对称差集是指两个集合的并集减去交集
①symmetric_difference()方法
print("symmetric_difference:",a.symmetric_difference(list_1))
②数学表示
print("a^list_1:",a^list_1)
运行结果:

6.判断是不是相交
list_3=set([50,30,60])
print("isdisjoint:",a.isdisjoint(list_3)) #判断两个集合之间的关系是不是相交,如果相交返回False
print("isdisjoint:",a.isdisjoint(list_2))
运行结果:

三、集合的操作
1.添加数据
添加一项:
a.add("abc") #添加一项
添加多项:
a.update([20,30,90])
2.删除数据
①remove()方法
a.remove("abc") #删除字符“abc”
②pop()方法
print(a.pop()) #随机删除,并返回删除的值
③discard()方法
a.discard(30) #删除数据
3.获取集合的长度
print(len(a)) #集合 a 的长度
4.判断数据是否是集合的成员
print(30 in a) #判断30是否是集合a的成员(列表、字典、集合、字符串都可以用这种方法来判断)
print(30 not in a) #判断30是否不是集合a的成员
初学Python——集合及其运算的更多相关文章
- Python集合及其运算
目录 集合(set) 集合的创建 集合的操作 集合的运算 子集与父集 集合(set) 集合是由不同可hash的值组成的,里面所有的值都是唯一的,也是无序的 集合的创建 >>>set_ ...
- python集合的运算
& 交集 | 并集 - 差集 ^ 异或集 # 在对集合做运算时,不会影响原来的集合,而是返回一个运算结果 # 创建两个集合 s = {1,2,3,4,5} s2 = {3,4,5, ...
- day14 Python集合关系运算交,差,并集
low逼写法,没用集合 python_1 = ['charon','pluto','ran'] linux_1 = ['ran','xuexue','ting'] python_and_linux = ...
- python 集合的运算
x = frozenset([, , , , ]) y = frozenset([, , , , ]) #如果x与y没有公共元素,返回true print(x.isdisjoint(y)) #返回x与 ...
- Python全栈之路3--set集合--三元运算--深浅拷贝--初识函数
一.上节课的重点回顾: 1.类名加括号其实就是执行类的__init__方法: 2.int a.创建方式 n1 = 123 #根据int类创建了一个对象 n2 = int(123) #根据int类创建一 ...
- 初学Python(四)——set
初学Python(四)——set 初学Python,主要整理一些学习到的知识点,这次是set. # -*- coding:utf-8 -*- #先来看数组和set的差别 d=[1,1,2,3,4,5] ...
- 初学Python(一)——数据类型
初学Python(一)——数据类型 初学Python,主要整理一些学习到的知识点,这次是数据类型. #-*- coding:utf-8 -*- #整数 print 1 #浮点数=小数 print 1. ...
- 初学python之感悟
python的强大有目共睹,现将初学python,觉得其中比较重要的知识罗列如下: 类似于数组的东西:列表.元组.集合.字符串以及字典,这几个东西充分体现了python的强大和逆天. 列表: x=[1 ...
- python集合类型
集合类型简介 集合也是容器,其内元素都是无序.唯一.不可变的.它常用来做成员测试.移除重复数据.数据计算(比如交集.并集.差集). 集合Set是dict的无value版.集合也使用大括号包围: > ...
随机推荐
- K8S 容器的资源需求、资源限制
容器的资源需求,资源限制 requests:需求,最低保障: limits:限制,硬限制: CPU: 1 颗逻辑 CPU 1=1000,millicores 500m=0.5CPU QoS: Gura ...
- 照葫芦画瓢系列之Java --- Maven的集成和使用
一.和Eclipse的集成 1.添加Maven 在windows--> preferences中找到maven选项,如下图: 如果没有上图的Name为apache-maven-3.5.2的项,则 ...
- Conccrent中 Unsafe类原理 以及 原子类AutomicXX的原理以及对Unsafe类的使用
Unsafe类的介绍 Java中基于操作系统级别的原子操作类sun.misc.Unsafe,它是Java中对大多数锁机制实现的最基础类.请注意,JDK 1.8和之前JDK版本的中sun.misc.Un ...
- Android为TV端助力 布局、绘制、内存泄露、响应速度、listview和bitmap、线程优化以及一些优化的建议!
1.布局优化 首先删除布局中无用的控件和层级,其次有选择地使用性能较低的viewgroup,比如布局中既可以使用RelativeLayout和LinearLayout,那我们就采用LinearLayo ...
- Android为TV端助力 Canvas 和 Paint用法
自定义view里面的onDraw方法,在这里我们可以绘制各种图形,onDraw里面有两个API我们需要了解清楚他们的用法:Canvas 和 Paint. Canvas翻译成中文就是画布的意思,Canv ...
- Android为TV端助力 SharedPreferences 轻量级存储!
首先在当前进程也就是当前的项目里面进行存储 SharedPreferences.Editor editor = mContext.getSharedPreferences("tvplay&q ...
- View体系第二篇:View滑动
View滑动的基本思想:当点击事件传到View时,系统记下触摸点的坐标,手指移动时系统记下触摸后的坐标并计算出偏移量,然后根据偏移量修正View坐标. 实现View滑动共有6种方法:layout()方 ...
- (办公)rom包
所谓ROM包,通俗点来讲,也就是手机上的系统安装包.使用过智能手机的朋友可能都有过这样的遗憾,自己所用的官方系统虽然能够满足绝大部分的需求,但总有一些细节不是很合自己的心愿……比如说,内置的输入法不好 ...
- shell中的set、seq、eval、exec、&&和||
一.set 查看set 帮助: bash -c "help set" 选项: -e:任何命令执行失败(非0 status)直接退出 -x: 打印执行过程的命令行.参数 +e:命令执 ...
- Spark集群搭建【Spark+Hadoop+Scala+Zookeeper】
1.安装Linux 需要:3台CentOS7虚拟机 IP:192.168.245.130,192.168.245.131,192.168.245.132(类似,尽量保持连续,方便记忆) 注意: 3台虚 ...