(小甲鱼python)集合笔记合集一 集合(上)总结 集合的简单用法 集合的各种方法合集:子、交、并、补、差、对称差集、超集
一、基础复习
集合与字典区别
集合中所有元素都是独一无二的,并且也是无序的。
集合具有唯一性、无序性、有限性
>>> type({}) #字典
<class 'dict'>
>>> type({"one"}) #集合
<class 'set'>
>>> type({"one":1}) #字典
<class 'dict'>
二、集合的简单用法
1.集合创建的三种方法
#第一种是花括号里面传入多个元素
>>> {"FishC","Python"}
{'Python', 'FishC'}#第二种是集合推导式
>>> {s for s in "FishC"} # 集合中元素是无序的
{'s', 'i', 'F', 'C', 'h'}#第三种是 set()方法
#这里源码是set(iterable),所以传入的"FishC"会被看作是可迭代对象进行迭代,而不是单个字符串
>>> set("FishC")
{'s', 'i', 'F', 'C', 'h'}
2.集合是无序的,不能通过下标索引访问
>>> s=set("FishC")
>>> s[0]
Traceback (most recent call last):File "<pyshell#10>", line 1, in <module>s[0]
TypeError: 'set' object is not subscriptable
3.判断某一元素是否在集合中
>>> set("FishC")
{'s', 'i', 'F', 'C', 'h'}
>>> 'C' in s
True
>>> 'c' in s #字符不在集合中
False
4.访问集合元素
迭代方式访问
>>> set("FishC")
{'s', 'i', 'F', 'C', 'h'}
>>> for each in s:print(each)s
i
F
C
h
5.集合唯一性的几种用法
对列表重复元素进行去重,判断列表是否有重复元素
>>> set([1,1,2,3,5]) #对列表重复元素进行去重
{1, 2, 3, 5}
>>>
>>> s=[1,1,2,3,5] #判断列表是否有重复元素
>>> len(s)==len(set(s))
False
6.集合的浅拷贝
>>> s=[1,1,2,3,5]
>>> t=s.copy()
>>> t
[1, 1, 2, 3, 5]
三、 集合的各种方法合集:子、交、并、补、差、对称差集
>>> s=[1,1,2,3,5]
>>> t=s.copy()
>>> t
[1, 1, 2, 3, 5]
2.判断两个集合是否毫不相关
s.isdisjoint(other) 如果 s 集合中没有与 other 容器存在共同的元素,那么返回 True,否则返回 False
>>> s=set("FishC")
>>> s
{'s', 'i', 'F', 'C', 'h'}
>>> s.isdisjoint(set("Python")) #返回False说明它们相关,有公共的h
False
>>> s.isdisjoint(set("JAVA")) #两集合无关
True
>>>
>>> s.isdisjoint("JAVA") # 传入字符串,显然与集合无关
True
>>> s.isdisjoint("Python") #传入字符串,显然与集合相关
False
3.子集
子集:对于两个集合 A、B,如果集合 A 中任意一个元素都是集合 B 中的元素,我们就说这两个集合有包含关系,称集合 A 为集合 B 的子集(Subset)
>>> set("FishC")
{'s', 'i', 'F', 'C', 'h'}
>>> s.issubset("FishC.com.cn")
True
>>> s.issuperset("Fish")
True
使用运算符,符号两边都必须是集合类型的数据才行,否则会报错,错误用法:
>>> set("FishC")
{'s', 'i', 'F', 'C', 'h'}
>>> s<="FishC"
Traceback (most recent call last):File "<pyshell#58>", line 1, in <module>s<="FishC"
TypeError: '<=' not supported between instances of 'set' and 'str'
>>>
>>> s <=set("FishC") #真集
True
>>> s<set("Fish")
False
>>> s<set("FishC")
False
>>> s<set("FishC.com.cn") #真子集
True
4.并集
并集:对于两个集合 A、B,把他们所有的元素合并在一起组成的集合,叫做集合 A 与集合 B 的并集(Union)。
>>> set("FishC")
{'s', 'i', 'F', 'C', 'h'}
>>> s.union({1,2,3})
{1, 2, 3, 'C', 's', 'h', 'i', 'F'}>>> s.union({1,2,3},"python")
{'y', 1, 2, 3, 's', 'F', 'p', 'i', 't', 'n', 'C', 'o', 'h'}
>>> s | {1,2,3} | set("Python")
{'y', 1, 2, 3, 'P', 's', 'i', 'F', 't', 'n', 'C', 'o', 'h'}
交集:对于两个集合 A、B,由所有属于集合 A 且属于集合 B 的元素所组成的集合,叫做集合 A 与集合 B 的交集(Intersection)。
>>> set("FishC")
{'s', 'i', 'F', 'C', 'h'}
>>> s.intersection("Fish")
{'h', 'i', 'F', 's'}>>> s.intersection("Php","Python")
{'h'}
>>> s & set("Php") & set("Python")
{'h'}
5.差集
差集:对于两个集合 A、B,由所有属于集合 A 且不属于集合 B 的元素所组成的集合,叫做集合 A 与集合 B 的差集(Difference)。
>>> set("FishC")
{'s', 'i', 'F', 'C', 'h'}
>>> s.difference("Fish")
{'C'}>>> s.difference("Php","Python")
{'C', 's', 'i', 'F'}
>>> s - set("Php") - set("Python")
{'i', 'C', 'F', 's'}
6.对称差集
s.symmetric_difference(other) 返回一个新集合,其内容是排除掉 s 集合和 other 容器中共有的元素后,剩余的所有元素。
>>> s.symmetric_difference("Python")
{'y', 'P', 's', 'i', 't', 'F', 'n', 'C', 'o'}
>>> s ^ set("Python")
{'y', 'P', 's', 'F', 'i', 't', 'n', 'C', 'o'}
>>> s>set("FishC") #真超集
False
>>> s>=set("FishC") #超集
True
四、 集合的其他用法
集合中元素的基本操作 删除、添加、更新等 可变集合set()和不可变集合frozenset() 集合的可哈希等等frozenset()集合的嵌套等等知识点。
课后题:
1.如果存在多个列表,需要筛出这些列表中相同的元素,可以使用什么方法?
答:将它们转换为集合,然后进行交集运算,得出的结果便是它们之间共同拥有的元素。
解析:
>>> # 方法一
>>> l1 = [1, 2, 3, 4, 5]
>>> l2 = [1, 3, 5, 7, 9]
>>> l3 = [1, 1, 2, 3, 5]
>>> set(l1).intersection(l2, l3)
{1, 3, 5}
>>> # 方法二
>>> set(l1) & set(l2) & set(l3)
{1, 3, 5}
>>> s1 = set("fishc.com.cn")
>>> s2 = set("ilovefishc.com")
>>> s1 - s2
(小甲鱼python)集合笔记合集一 集合(上)总结 集合的简单用法 集合的各种方法合集:子、交、并、补、差、对称差集、超集相关推荐
- 小甲鱼python入门笔记(一)(全)
目录 一.变量和字符串 1.python转义字符 2.交换x,y变量的值 3.原始字符串,忽略转义字符 4.长字符串两种方式 5.字符串加法和乘法 二.是时候讲讲代码了 1.python比较运算符 三 ...
- B站小甲鱼python学习笔记
000 愉快的开始 视频地址: https://www.bilibili.com/video/BV1xs411Q799?p=1 python跨平台 应用范围: 操作系统.WEB.3D动画.企业应用.云 ...
- 小甲鱼python入门笔记(二)
目录 九.字符串 1.大小写字母换来换去 2.左中右对齐 3.实现字符串的查找功能 4.替换 5.字符串各种情况下的判断和检测 6.截取字符串 7.拆分和拼接 8.格式化字符串 9.f-字符串(f-s ...
- python小甲鱼练习题答案_小甲鱼Python第 013讲元组:戴上了枷锁的列表 | 课后测试题及参考答案...
测试题: 0. 请用一句话描述什么是列表?再用一句话描述什么是元组? 列表:一个大仓库,可以随时往里面添加和删除任何东西. 元祖:封闭的列表,一旦定义,就不可改变(不能添加.删除或修改) 1. 什么情 ...
- 小甲鱼Python学习笔记之函数(三)
递归 定义 递归的两个特点(重中之重!!!) 递归的应用 能够用递归实现的功能都能够用循环迭代来实现 用递归实现斐波那契数列 用其他方式实现斐波那契数列 用递归实现汉诺塔 定义 函数之间是可以相互调用 ...
- 小甲鱼python入门笔记(三)
目录 十三.函数 4.作用域 (1)局部作用域 (2)全局作用域 (3)global语句 (4)嵌套函数 (5)nonlocal语句 (6)LEGB规则 5.闭包 6.装饰器 7.lambda表达式 ...
- 小甲鱼Python学习笔记之函数(四)
函数注释 类型注释 Python自省 函数注释 通过help来查看函数的注释 自定义函数时编写函数注释 >>> def exchang(dollar,rate=6.32):" ...
- 小甲鱼Python学习笔记之魔法方法
什么是魔法方法 构造和析构 __init__方法 __new__方法 __del__方法 工厂函数 通过对魔法方法的重写,还可以自定义对象间的算术运算 反运算方法 实现一个计时器的类 time模块的l ...
- (小甲鱼python)字符串系列笔记合集四 第四课、字符串IV总结 删除字符串中(左右)空格 删除指定的前缀或者后缀 字符串以参数指定的分隔符为依据进行切割,将切割后的结果返回一个三元组
一.字符串总结四 1.删除字符串中(左右)空格或者与之匹配的字符串 "字符串".lstrip(char=None) 删除左空格 "字符串".rstrip(cha ...
- 小甲鱼python课后题答案_小甲鱼python视频教程下载|小甲鱼零基础学python视频教程附习题答案_ - 极光下载站...
小甲鱼零基础学python视频教程下载,最完整的小甲鱼python语言学习视频来啦,想要学习python语言的小白们不妨点击观看视频在下学习吧! Python语言介绍 Python是一种面向对象的解释 ...
最新文章
- 爬虫笔记7正则表达式与re库
- liferay 如何添加css或者js
- lsattr/chattr
- C++ 常用拷贝和替换算法
- 设计模式学习之单件模式singleton
- Entity Framework关联实体的三种加载方法
- 橱柜高度与身高对照表_厨房台面高度是多少 厨房台面如何选购
- 通过OAuth方式与docker hub v2 API交互
- STM32 cubemx驱动ws2812b灯条
- 如何在微信里找到小程序?
- android adb login,adb
- 入门pandas—数据填充
- delete obsolete 会删除归档日志么?
- xp装html5,WindowsXP系统如何安装IIS5.1
- session fixation漏洞简述
- docker虚拟化容器技术
- 5.1.2全景声音箱摆位_全景声音响系统--音箱应该如何摆位(5.1.2、5.1.4篇)
- 数字华容道有解的条件
- IOS积分墙:末落贵族与新兴势力PK
- 张杰和机器人_「配天机器人|视点」来福谐波:90后张杰的“生意经”