Python笔记_第一篇_面向过程_第一部分_5.Python数据类型之集合类型(set)
集合!Python中的集合数据基本上是为了方便数学计算使用的。
什么是集合?
集合就是“确定的一堆东西”。集合里面的东西叫做元素。
特点:1. 集合里面是没有重复的元素的。
2. 集合的创建也是通过( )的方式进行创建,里面可以是字符串的形式,也可以是列表等其他形式。
3. 集合和字典一样也是没有顺序的概念。
4. 集合每次显示结果的顺序都是随机的!
分类:在Python中对于集合分可变集合也就是最常用的set,还有一种叫frozenset(冻结集合)有不可编辑的性质。最主要的还是set集合,他们有一些区别。
区别:1. set:无序排列且不重复,不存在哈希值,元素是可变的,有add()、remove()等方法。
frozenset:是不可变的,存在哈希值,好处是他可以作为字典的key,也可以作为其他集合的元素。但是一旦创建没有add()、remove()等方法。
2. set:基本功能包括关系测试和消除重复元素,集合对象还支持union(联合、并集)、intersection(交集)、difference(差集)和sysmmetric difference(对称差集)等数学运算。
1. 集合的简单应用
1.1 创建集合
语法:集合名 = set ("元素1", "元素2", "元素n")
创建一个空集合和带有元素的集合
# 创建集合 #
set0 = set()
set1 = set("boyaaaaa") # 字符串按照单个元素进行拆分
set2 = set(["y", "b", "o"]) # 也可以额用列表方式进行创建
set3 = set([1, 2, 3])
set4 = set([123,])
print(set0)
print(type(set0))
print(set1)
print(set2)
print(type(set2))
print(set3)
print(set4)
# 输出结果:
# set()
# <class 'set'>
# {'y', 'a', 'o', 'b'} # 注意一下,这里集合的显示结果是用花括号列出的
# {'b', 'o', 'y'} # 注意一下,这里集合的显示结果是用花括号列出的
# <class 'set'> # 注意一下,这里集合的显示结果是用花括号列出的
# {1, 2, 3} # 注意一下,这里集合的显示结果是用花括号列出的
# {123} # 注意一下,这里集合的显示结果是用花括号列出的
1.2 集合的常规操作
有一个函数没见过,列出一下:
函:set.add
语:set.add("元素")
用:把元素添加到set集合里面
# 集合添加、删除 #
# 添加
a = set("set")
a.add("python") # 任意位置添加
print(a)
# 输出结果:
# {'s', 'e', 'python', 't'} b = set("boy")
b.update("python") # 按照字符串的字符进行打散添加
print(b)
# 输出结果:
# {'y', 'p', 'h', 'b', 'o', 'n', 't'} # 删除
c = set(["y", "python", "b", "o"])
c.remove("python")
print(c)
# 输出结果:{'o', 'b', 'y'}
2. 集合的数学运算
集合的数学运算主要包括:
- 差集、相对补集运算,谁相对于谁没有的元素
& 并集;两个集合当中相同的元素,或者函数union(s)
| 合集;a和b两个集合进行组合
!= 不等于;判断两个集合的元素是否相等,如果不相等返回为True,否则为False
== 相等;判断两个集合的元素是否相等,如果相等返回为True,否则为True
in 包含;判断集合a是否包含在集合b当中,如果包含返回为Ture,否则为False
not in 不包含;判断集合a是否不包含在集合b当中,如果不包含返回为True,否则为False
# 集合的数学运算 #
a = set("abc")
b = set("cdef")
# - 差集、相对补集运算,谁相对于谁没有的元素
print(a - b, b - a) # 输出结果:{'b', 'a'} {'d', 'f', 'e'} # & 并集;两个集合当中相同的元素
print(a & b) # 输出结果:{'c'} # | 合集;a和b两个集合进行组合
print(a | b) # 输出结果:{'b', 'e', 'c', 'a', 'd', 'f'} # != 不等于;判断两个集合的元素是否相等,如果不相等返回为True,否则为False
print(a != b) # 输出结果:True # == 相等;判断两个集合的元素是否相等,如果相等返回为True,否则为True
print(a == b) # 输出结果:False # in 包含;判断集合a是否包含在集合b当中,如果包含返回为Ture,否则为False
print(a in b) # 输出结果:False # not in 不包含;判断集合a是否不包含在集合b当中,如果不包含返回为True,否则为False
print(a not in b) # 输出结果:True
2. 补充说明
除了常用的这些数据类型,还如布尔型等参照其他资料即可,非常简单
Python笔记_第一篇_面向过程_第一部分_5.Python数据类型之集合类型(set)的更多相关文章
- Python笔记_第一篇_面向过程_第一部分_2.内存详解
Python的很多教材中并没有讲内存方面的知识,但是内存的知识非常重要,对于计算机工作原理和方便理解编程语言是非常重要的,尤其是小白,因此需要把这一方面加上,能够更加深入的理解编程语言.这里引用了C语 ...
- Python笔记_第一篇_面向过程_第一部分_1.Python环境的设置(含虚拟机)
*Python环境的设置 Python的环境设置也就是所需工作平台的软件搭建.常用的搭建平台IOS系统+Linux系统和Windows+Linux系统的搭建.这里主要说明的是Windows+Linux ...
- Python笔记_第一篇_面向过程_第一部分_6.条件控制语句(if)
Python正如其他语言一样存在两种常用的逻辑判断体(也叫结构化程序设计).所谓逻辑判断体是通过你想要完成的编程思路,通过在逻辑判断体中的相互判断和作用得到你想要的结果.逻辑判断体也叫控制语句,Pyt ...
- Python笔记_第二篇_面向过程_第二部分_2.路径、栈和队列、内存修改
这一部分分三个主题进行讲解,主要为后面的模块.包.第三方库的概念补充一些相关的内容. 1. 路径(Path): 相对路径和绝对路径. 举例1:我们先导入一个os库(模块)来观察一下路径 import ...
- 四、java基础-面向过程_对象_类中可出现的因素
1.面向过程和面向对象区别: 1)面向过程:开发一个应用程序.一个项目,必须先了解整个过程,了解各个步骤.模块间的因果关系,使的面向过程方式去开发程序时,代码和代码之间的关联程度是非常强.所以其中任何 ...
- python自动化开发-[第五天]-面向过程、模块、包
今日概要: 1.内置模块 2.协程函数 3.递归 4.面向过程编程与函数编程 5.模块 6.包 7.re正则 一.内置模块 1.匿名函数lambda 定义:匿名函数通常是创建了可以被调用的函数,它返回 ...
- python第四周迭代器生成器序列化面向过程递归
第一节装饰器复习和知识储备------------ 第一节装饰器复习和知识储备------------ def wrapper(*args,**kwargs): index(*args,**kwa ...
- [Python笔记]第八篇:模块
本篇主要内容:python常用模块用法介绍 什么是模块 模块,用一大段代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性 ...
- [Python笔记]第三篇:深浅拷贝、函数
本篇主要内容:深浅拷贝,自定义函数,三目运算,lambda表达式, 深浅拷贝 一.数字和字符串 对于 数字 和 字符串 而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. import ...
- python之迭代器、生成器、面向过程编程
一 迭代器 一 迭代的概念 #迭代器即迭代的工具,那什么是迭代呢?#迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 while True: #只是单纯地重复,因而不 ...
随机推荐
- mysql 事务使用教程
一.什么是事务 事务Transaction,是指作为一个基本工作单元执行的一系列SQL语句的操作,要么完全地执行,要么完全地都不执行. 二.事务的特性 原子性 事务是一 ...
- 编程入门-Eclipse快捷键的使用
编程入门-Eclipse快捷键的使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.设置代码的自动补全 1>.查看默认的补全的提示符(如下图所示,依次点击"wi ...
- MFC双缓冲
大家都知道包括windows桌面在内我们看到的一切都是系统画上去的,windows桌面就相当于一个黑板: <1>普通绘图就是直接在我们看得到的黑板上绘图 <2>双缓冲就是先在一 ...
- Sublime Text与LaTeX的结合
1.通过Command Palette安装LaTeXTools 2.通过Command Palette查找LaTeXTools: Reconfigure and migrate settings,回车
- 自学Java第五章——《面向对象基础》
5.1 类与对象 1.类:一类具有相同特性的事物的抽象描述. 对象:类的一个个体,实例,具体的存在. 类是对象的设计模板. 2.如何声明类? [修饰符] class 类名{ 成员列表:属性.方法 ...
- python 奇淫技巧之自动登录 哔哩哔哩
前言 嘿,各位小伙伴好呀,今天要带来点什么干货呢,就从我的实际开发中来给大家带来一个案例吧,如何自动登录 哔哩哔哩 接到老大通知,让我自动写一个自动登录 哔哩哔哩 的脚本,我当然是二话不说直接开怼,咱 ...
- 三十、CI框架之使用cookies实现用户登录和退出。
一.在控制器中,写入3个函数.一个是login用于登录,一个是logout用于退出,一个show用来展示界面. login代码如下: logout和showuser函数如下: 二.我们的登录界面 三. ...
- 八、CI框架之输出URI路径,相当于GET
一.controller中的代码如下: 二.我们打开一个路径,输出对应的路径URI的值 http://127.0.0.1/CodeIgniter-3.1.10/index.php/welcome/in ...
- HZNU-ACM寒假集训Day6小结 线性DP
线性DP 考虑一组硬币面值 1,5,11 给定W,求凑出W的最少硬币个数 我们记凑出n需要用到的最少硬币数量为f(n) 我们注意到了一个很棒的性质 : f(n)只与f(n-1) f(n-5) f( ...
- C++中的string详解
标准库类型string表示可变长的字符序列,为了在程序中使用string类型,我们必须包含头文件: #include <string> 声明一个字符串 声明一个字符串有很多种方式,具体如 ...