初学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版.集合也使用大括号包围: > ...
随机推荐
- 中文代码示例之NW.js桌面应用开发初体验
先看到了NW.js(应该是前身node-webkit的缩写? 觉得该起个更讲究的名字, 如果是NorthWest之意的话, logo(见下)里的指南针好像也没指着西北啊)和Electron的比较文章: ...
- 2018-08-06 在Office的VBA代码里中文命名
在Excel处理数据时, 顺便试了一下VBA代码编辑器里输入中文, 结果显示为乱码. 查了一下发现VBA本身支持Unicode, 但需要设置系统配置使编辑器能够正常显示, 即设置简体中文为Curren ...
- git命令详解( 九 )
此为git第九篇记录 整理提交记录 Git Cherry-pick 交互式的 rebase Git Tags Git Describe 整理提交记录 之前我们已经学习了 Git 的基础知识 ...
- Tars 服务调服务
1,创建一个 tars 服务工程 2,把需要调用的服务的 客户端接口文件 拷贝到当前服务 3,构建通信器 CommunicatorConfig 调用,如果是 springboot 开发客户端可以使用注 ...
- 腾讯云 Game-Tech 技术沙龙小游戏专场“空降”长沙
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯游戏云发表于云+社区专栏 小游戏作为今年快速成长的新生态,在开放进入市场之后持续成为行业热点,获得了游戏开发商的高度关注与参与.在 ...
- Kotlin入门(23)适配器的进阶表达
前面在介绍列表视图和网格视图时,它们的适配器代码都存在视图持有者ViewHolder,因为Android对列表类视图提供了回收机制,如果某些列表项在屏幕上看不到了,则系统会自动回收相应的视图对象.随着 ...
- DAY9(PYTHON)
li=[{'usename':'xiaowang'}, {'} ] board=['张三','李四','王大麻子'] while 1: usename = input('用户名:') if usena ...
- 智能POS正餐主副机模式FAQ(无桌台或桌台模块)
1.无桌台 (1).如果是初次使用,首先检查是否是新建的机器号,新建的机器是默认关闭桌台的,需要到模块管理中开启. 2.无桌台模块 (1).是否在主副机开启连接上后重启主机与副机,且同步数据.
- 剑指offer(java版)【转】
面试题 2 :实现单例模式 1. 饿汉式单例类 public class SingletonClass { private static final SingletonClass instance=n ...
- STL之迭代器(iterator)
1 头文件 所有容器有含有其各自的迭代器型别(iterator types),所以当你使用一般的容器迭代器时,并不需要含入专门的头文件.不过有几种特别的迭代器,例如逆向迭代器,被定义于<iter ...