初学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版.集合也使用大括号包围: > ...
随机推荐
- CSS3布局之多列布局columns详解
columns语法:columns:[ column-width ] || [ column-count ]设置或检索对象的列数和每列的宽度 其中:[ column-width ]:设置或检索对象每列 ...
- JS检测浏览器Adobe Reader插件
Web应用中当我们希望向用户显示pdf文档时候,如果用户安装了Adobe Reader之类的pdf阅读器,就可以直接打开文档在浏览器中显示, 但是,当用户没有安装这类软件的时候,自然是打不开的,为了系 ...
- Mac上Homebrew的安装
Mac系统版本: 10.14.2 下载brew_install 访问:https://raw.githubusercontent.com/Homebrew/install/master/install ...
- 在viewPager中双指缩放图片,双击缩放图片,单指拖拽图片
我们就把这个问题叫做图片查看器吧,它的主要功能有: (项目地址:https://github.com/TZHANHONG/ImageViewer/releases/tag/1.0,里面的MyImage ...
- pyinstaller打包错误 UnicodeDecodeError: 'gbk' codec can't decode byte 0xab in position 160:
注:我的博客原本在CSDN,现转到博客园,图片采用以前的图片,并没有盗图. 在将.py文件打包时,出现了下列错误 >>C:\Users\小呆\PycharmProjects\pycharm ...
- seajs的原理以及基本使用
seajs模块化开发 模块化开发,把整个文件分割成一个一个小文件. 使用方法 使用方法特别简单,首先在官网中下载sea.js,然后在页面中引入. index.html // 1.路径 // 2.回调 ...
- java中带图片按钮的大小设置
在java部分需要用到图形界面编程的项目中,经常会使用图片设置对按钮进行美化,但是使用时会出现一个很麻烦的问题,那就是按钮的大小默认按照图片的大小来显示,这大大降低了界面的美观程度: 按照方法: JB ...
- linux vbundle插件配置
1.新建目录,clone源码 mkdir ~/.vim/bundle/ git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vun ...
- [20181219]script使用小技巧.txt
[20181219]script使用小技巧.txt --//前几天在使用strace时遇到问题,它的输出使用标准错误句柄.--//我在想平时使用sqlplus如果输出字段很多,屏幕看起来一片混乱.-- ...
- web前端(15)—— JavaScript的数据类型,语法规范2
Object对象 说这个对象之前,如果您对编程语言开发稍微有点了解的话,应该知道面向对象是什么意思,而js也有面向对象一说,就因为如此,js才会这么强大. 什么是面向对象 其实所有支持面向对象的编程语 ...