python学习笔记(十五)之集合
集合:对应数学中的集合类型。集合中的元素是唯一,且无序的。
创建集合
方法一:使用{},注意python会自动删除重复元素
>>> number = {1,2,3,4,3,2,1}
>>> number
{1, 2, 3, 4}
方法二:使用set()工厂函数,传递一个列表,元组或字符串
>>> temp = set([1,2,3,2,1])
>>> temp
{1, 2, 3}
>>> temp = set((1,2,3,2,1))
>>> temp
{1, 2, 3}
>>> temp = set("Hello Python")
>>> temp
{'n', 'P', ' ', 'H', 'l', 'y', 't', 'o', 'h', 'e'}
访问集合元素
方法一:使用for把集合中元素一个一个读出来
>>> temp
{'n', 'P', ' ', 'H', 'l', 'y', 't', 'o', 'h', 'e'}
>>> for i in temp:
... print(i, end = ' ')
...
n P H l y t o h e >>>
方法二:使用in和not in来判断一个元素是否在集合中
>>> temp
{'n', 'P', ' ', 'H', 'l', 'y', 't', 'o', 'h', 'e'}
>>> 'n' in temp
True
>>> 'N' in temp
False
添加元素:使用add()方法
>>> temp
{'n', 'P', ' ', 'H', 'l', 'y', 't', 'o', 'h', 'e'}
>>> temp.add(1)
>>> temp.add(2)
>>> temp
{'n', 'P', 1, 2, ' ', 'H', 'l', 'y', 't', 'o', 'h', 'e'}
删除元素:使用remove()方法
>>> temp
{'n', 'P', 1, 2, ' ', 'H', 'l', 'y', 't', 'o', 'h', 'e'}
>>> temp.remove(1)
>>> temp
{'n', 'P', 2, ' ', 'H', 'l', 'y', 't', 'o', 'h', 'e'}
>>> temp.remove('H')
>>> temp
{'n', 'P', 2, ' ', 'l', 'y', 't', 'o', 'h', 'e'}
当需要定义一个不可变的集合时,可以使用frozeset
>>> num = frozenset(range(10))
>>> num
frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
>>> num.remove(0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'frozenset' object has no attribute 'remove'
集合运算
子集
子集,为某个集合中一部分的集合,故亦称部分集合。
使用操作符 < 执行子集操作,同样地,也可使用方法 issubset() 完成。
>>> a = set("Hello")
>>> b = set("Hello python")
>>> a < b
True
>>> a.issubset(b)
True
并集
一组集合的并集是这些集合的所有元素构成的集合,而不包含其他元素。
使用操作符 | 执行并集操作,同样地,也可使用方法 union() 完成。
>>> a
{'l', 'o', 'e', 'H'}
>>> b
{'n', ' ', 'H', 'l', 'y', 't', 'o', 'p', 'h', 'e'}
>>> a | b
{'n', ' ', 'H', 'l', 'y', 't', 'o', 'p', 'h', 'e'}
>>> a.union(b)
{'n', ' ', 'H', 'l', 'y', 't', 'o', 'p', 'h', 'e'}
交集
两个集合 A 和 B 的交集是含有所有既属于 A 又属于 B 的元素,而没有其他元素的集合。
使用 & 操作符执行交集操作,同样地,也可使用方法 intersection() 完成。
>>> a
{'l', 'o', 'e', 'H'}
>>> b
{'n', ' ', 'H', 'l', 'y', 't', 'o', 'p', 'h', 'e'}
>>> a & b
{'l', 'o', 'e', 'H'}
>>> a.intersection(b)
{'l', 'o', 'e', 'H'}
差集
A 与 B 的差集是所有属于 A 且不属于 B 的元素构成的集合
使用操作符 - 执行差集操作,同样地,也可使用方法 difference() 完成。
>>> a
{'l', 'o', 'e', 'H'}
>>> b
{'n', ' ', 'H', 'l', 'y', 't', 'o', 'p', 'h', 'e'}
>>> b - a
{'n', ' ', 'y', 't', 'h', 'p'}
>>> b.difference(a)
{'n', ' ', 'y', 't', 'h', 'p'}
集合的一些方法
| 方法 | 描述 |
|---|---|
| add() | 将元素添加到集合中 |
| clear() | 删除集合中的所有元素 |
| copy() | 返回集合的浅拷贝 |
| difference() | 将两个或多个集合的差集作为一个新集合返回 |
| difference_update() | 从这个集合中删除另一个集合的所有元素 |
| discard() | 删除集合中的一个元素(如果元素不存在,则不执行任何操作) |
| intersection() | 将两个集合的交集作为一个新集合返回 |
| intersection_update() | 用自己和另一个的交集来更新这个集合 |
| isdisjoint() | 如果两个集合有一个空交集,返回 True |
| issubset() | 如果另一个集合包含这个集合,返回 True |
| issuperset() | 如果这个集合包含另一个集合,返回 True |
| pop() | 删除并返回任意的集合元素(如果集合为空,会引发 KeyError) |
| remove() | 删除集合中的一个元素(如果元素不存在,会引发 KeyError) |
| symmetric_difference() | 将两个集合的对称差作为一个新集合返回 |
| symmetric_difference_update() | 用自己和另一个的对称差来更新这个集合 |
| union() | 将集合的并集作为一个新集合返回 |
| update() | 用自己和另一个的并集来更新这个集合 |
python学习笔记(十五)之集合的更多相关文章
- python学习第十五天集合的创建和基本操作方法
集合是python独有的数据列表,集合可以做数据分析,集合是一个无序的,唯一的的数据类型,可以确定列表的唯一性,说一下集合的创建和基本常见操作方法 1,集合的创建 s={1,2,4} 也可以用set( ...
- python学习笔记(十五)-unittest单元测试的一个框架
unittest 单元测试的一个框架什么框架 一堆工具的集合. TestCase TestSuite 测试套件,多个用例在一起 TestLoader是用来加载TestCase到TestSuite中的 ...
- python 学习笔记十五 web框架
python Web程序 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. Python的WEB框架分为两类: 自己写socket,自 ...
- python 学习笔记十五 django基础
Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...
- python学习笔记十五:日期时间处理笔记
#-*- coding: utf-8 -*- import datetime #给定日期向后N天的日期 def dateadd_day(days): d1 = datetime.datetime.no ...
- python学习笔记(十五)-异常处理
money = input('输入多少钱:') months = input('还几个月:') try: res = calc(int(money),int(months)) except ZeroD ...
- python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...
- python学习笔记(五岁以下儿童)深深浅浅的副本复印件,文件和文件夹
python学习笔记(五岁以下儿童) 深拷贝-浅拷贝 浅拷贝就是对引用的拷贝(仅仅拷贝父对象) 深拷贝就是对对象的资源拷贝 普通的复制,仅仅是添加了一个指向同一个地址空间的"标签" ...
- Python学习笔记(五)
Python学习笔记(五): 文件操作 另一种文件打开方式-with 作业-三级菜单高大上版 1. 知识点 能调用方法的一定是对象 涉及文件的三个过程:打开-操作-关闭 python3中一个汉字就是一 ...
- Python学习笔记(十二)—Python3中pip包管理工具的安装【转】
本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...
随机推荐
- 高性能的HTTP代理 LittleProxy
引用: https://github.com/adamfisk/LittleProxy 拦截和操纵HTTPS流量,LittleProxy使用中间人(MITM)管理器. LittleProxy的默认实现 ...
- 微信小程序组件 360
data: { nums: 1, start: '', // change:'' // 上一部记忆数据 mid: '' }, mytouchmove: function (e) { var start ...
- brush
简介 Brushing是一个通过点击或触摸来选择一个一维或二维区域的交互操作,比如可以通过点击鼠标并移动. brush经常被用来选择离散的元素比如散点图中的点或桌面上的文件等.它也可以被用来放大选中的 ...
- VS NuGet离线包(缓存包)nupkg安装
最近项目需要在NuGet添加一个依赖项,无奈公司开发机没网... 说出来各位看官可能不信,做开发的开发机居然没网!!!!!(那你还不赶快离职闪人) 没办法,项目需要还是得把东西扔进VS里面去,只有想办 ...
- 【Python】Python处理csv文件
Python处理csv文件 CSV(Comma-Separated Values)即逗号分隔值,可以用Excel打开查看.由于是纯文本,任何编辑器也都可打开.与Excel文件不同,CSV文件中: 值没 ...
- C++解析(18):C++标准库与字符串类
0.目录 1.C++标准库 2.字符串类 3.数组操作符的重载 4.小结 1.C++标准库 有趣的重载--操作符 << 的原生意义是按位左移,例:1 << 2;,其意义是将整数 ...
- 英文报道:China challenged Australian warships in South China Sea, reports say
学习地道新闻英语表达,以下文章来自CNN By Ben Westcott and Jamie Tarabay, CNN Updated 0830 GMT (1630 HKT) April 20, 20 ...
- Django模板语言循环字典
1. 对于字典,可以有下列用法: {% for row in user_dict.keys %} {% for row in user_dict.values %} {% for row in use ...
- 【刷题】LOJ 6041 「雅礼集训 2017 Day7」事情的相似度
题目描述 人的一生不仅要靠自我奋斗,还要考虑到历史的行程. 历史的行程可以抽象成一个 01 串,作为一个年纪比较大的人,你希望从历史的行程中获得一些姿势. 你发现在历史的不同时刻,不断的有相同的事情发 ...
- 各行业最受欢迎的编程语言,硬件最青睐C和C++
近日,HackerRank发布了2018年开发技能报告,其中探讨了一些对理解开发人员环境至关重要的事情,本文将摘录编程语言排行部分 2018 开发者技能调查:不同行业中最热门的编程语言 尽管新语言经常 ...