| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> python元组、集合、字典大合集 -> 正文阅读 |
|
[Python知识库]python元组、集合、字典大合集 |
python元组、集合、字典大合集文章目录在前面的文章中,已经对列表有了一个相对深度的了解,那么,在python中除了列表,实际上还有这样几种容器型的数据类型,它们分别就是元组、集合和字典,一起来看看它们长什么样。 元组(tuple)元组和列表很像,同样我们可以用它来放一些数据,但是不同的是,将数据放进元组这样的容器中后,就不能再对里面的元素作修改了,所谓的修改也就是增、删、改了,那么,相信你也产生了这样的疑惑:这样“不方便的数据类型”有什么用呢?这是每一个初学者都会产生的问题。 是的,元组确实是很少被使用,但是这并不代表它没有用,如果仅是单单认为它就是一个不可变的列表的话,可能就忽略了它真正存在的意义,这样要是在面试被问到的话,你很可能会一脸懵逼。实际上,元组之所以存在,也是因为它的不可变性这个特点,想像一下,如果你创建了一条记录,将它给其他人浏览,那你肯定不希望被人修改它原始的样子吧,特别是名字、性别、籍贯等这样重要的信息,要是将它放到列表,那么这样的数据是不具有保护性的,也就是因为这样,为了满足这样的需求,因此,产生了列表这样的容器型数据类型,通常将它来作为记录工具来使用,而第二个身份才是一个不可变的列表,也是因为它本身并不支持更改,因此,能对它所做的操作也是很少。 下面来看看它的定义方法以及操作等 1.元组的定义
元组采用 定义一个空元组
定义一个一元组(这里有一个坑) 如果你这样定义一个只有一个元素,我们将就看一下它的数据类型
为什么是这样呢?大家还记得()还可以做什么吗?它是不是在运算时提升括号里面的数据的元素优先级,那么在这里,如果你这样定义,那它就相当于你是给里面的 3 提升了优先级,并不知道你想定义一个元组,那么该怎样做呢?
所以,定义一个只有一个元素的元组就一定要在写了元素后加一个逗号(英文输入法下) 定义一个二元组
定义一个三元组
采用构造器语法也能创建一个元组,但是并不推荐,坑太多,所以这里就不举例了。定义好一个元组后,我们来看看能对它做哪些操作。 2.元组的使用查看变量的类型type()、 查看元组中元素的数量len()、循环遍历元组中的元素、成员运算(元素在不在某个元组里)、切片、等和列表的操作大同小异,我就不一一举例,还不明白的请看我之前写的《5分钟带你了解Python中的容器型数据类型–列表2》,这里我们主要看一下它和列表的不同之处。
在相对列表进行某个元素的更改时,往往我们先将这个元素通过索引拿到,然后再进行赋值操作,这样就可以将这个元素更改成新赋的值,但是,在元组里面进行这样的操作我们可以看一下。 当你这样操作时它就已经标出了颜色(pycham环境),如果你硬是要运行,会得到下面这样一个报错: TypeError: ‘tuple’ object does not support item assignment(类型错误:元组对象不支持赋值操作) 如果你是纯取出来,那样是可以的。总的来说,只要你不尝试更改它,其他操作基本和列表都是一样的 主要就是讲这一点注意事项。其他操作我就不再赘述,大家借用列表的知识去尝试练习,会事半功倍哦 3.元组的应用场景
打包和解包: 当我们给一个变量赋多个值时,这时候系统会将这些值
什么又是解包呢?大家在python中想对两个变量进行值得交换时并不需要像在其它语言上那样定义一个临时变量作为交换的临时存储工具,如果想对a,b两个变量的值进行交换,只需要这样做
其实这样的操作就是一个 解包就是在给多个变量同时赋值的时候,这时候右边就是一个元组,将元组里的值赋给对应的变量的过程,这里的a, b = b, a的右边就是一个二元组,再将对应的b的值赋给a,将a的值赋给了b,就实现了变量值的交换。但是对于解包时变量个数和元组的元素个数不等的情况,会引发valueError异常。例如:
现在我们来思考一下函数中的可变参数(还不知道函数的请先跳过),参数之所以可变就是将多个参数打包成了一个元组,在传入参数时这时候实际上给函数传入的是一个元组,在对这个元组进行遍历就可以得到多个参数,例如:
下面我们来看一看另一种数据类型–集合。 集合(set)说到集合,相信大家更是不陌生了吧,高中数学就学到了集合这个概念,具体概念我就不找官方定义放这里了,懂的都懂,至于不懂的嘛。嗯。。问问度娘。实际上,在python中的集合和数学上的集合可以说是一样的,通常这样定义它:把一定范围的、确定的、可以区别的事物当作一个整体来看待*,而对于它最重要的也是区分它和其他事物的根据是这样三个特征:
基于这样三个特征,我们可以知道,集合中的元素数不可以重复的(可以用这一点实现对其他容器类型的去重),集合中的元素是没有顺序的(因此不可以索引和切片),集合中的元素一定是确定的。python的集合同样采用 1.集合的创建
变量名 = {+元素} +号表示元素可以是1个或多个元素,这里并不是说不可以不放元素,而说如要定义一个空集合不能用这个语法 例如:
而定义一个空集合为什么不能是set2 = {}呢?我们可以先试一下
得到的数据类型是dict(字典),也就是说,下面我们要介绍的另一种容器–字典也是用它{}来标识,所以说如果像上面
不知道大家注意没有,定义set1时我写了这样一句注释“
2.集合的操作如数学上的集合相同,集合可以进行交并差、子集、超集运算等,不仅如此,还可以进行成员运算、相等性运算等
成员运算、比较运算(相等性、子集、超集等)和列表的成员运算、比较运算大同小异,这里不再赘述 3.集合的方法集合除了交并差那些可调用的方法外,由于集合是一个可变的数据类型,所以,我们可以对它作元素的添加或删除操作等,下面我们看一下集合的常用方法。
–采用discard 如果不想先进行成员运算,可用discard方法
若只想随机删除一个元素,用pop方法
这些就是比较常用的集合的方法。集合先讲到这儿,接下来,我们看一下字典。 字典(dict)顾名思义,如新华字典、英汉字典、康熙字典等等,像这样 python里面的
这样可能没有对比性,看看这样
这样是不是和现实中的字典很相似呢?都是前面有一个关键词,后面是对应的解释,在Python中的字典中,每一个元素是一个 ‘姓名’:‘张三’,前面的姓名叫做 那么定义一个这样的字典有什么用呢?查询吗?这样说也并没有错,的确,用字典来保存数据,对比之前所有的数据类型去保存以上那样的数据,是不是都更合适,因为这样做能让人对想了解的数据一目了然。当然了,它的功能不仅仅是保存数据,它的用处可大了,下面,我们分块来看看它的定义、操作、以及方法和实例。 1.字典的定义
语法也很简单:
创建一个空字典
创建一个简单的字典
如列表一样,字典可以采用生成式(推导式)语法来创建,例如
2.字典的使用和运算
使用for循环,我们可以取到字典的每一个元素的键
这样只能够拿到字典的键,那怎样拿到它的值value呢? 索引,对,还是索引
这里主要介绍字典的成员运算和索引运算 索引 我们想拿到字典的值value,首先得先找到对应的键key,所以,在索引时,是通过字典的键来索引的,例如:
这样就拿到了该键对应的值,值得注意的是,如果你索引的键不在字典中,将引发keyError异常 那么同样就可以采用先成员运算在索引来避免这样的麻烦。 成员运算 例如
3.字典的方法如果你索引的键不在字典中,将引发keyError异常,所以采用字典的方法get,也能拿到指定key所对应的值,而且解决了上面索引所以到的麻烦,这里,如果用get去取,如果取不到,会返回None或者你所设定的默认值。
使用索引或者get的方式一次只能拿到一个值,如果一次想拿全部的值,那样还要循环遍历是不是太难了,所以,python中有写好的方法去解决这样的问题。
同样,不需要遍历,我们可以一次取到字典的键key
还有一个方法,既可以得到字典的键,也可以得到它的值
为了一次从这些键值对中同时既取出键,也取出值,对它作一个for循环遍历
删除键值对,有以下三种方法,三种方法略有不同,它们如要删除的键不存在,会引发keyError异常
更新键值对
所要添加的这个键在字典中已经存在,不添加,返回对于应的值 所要添加的这个键在字典中不存在,添加进去,返回添加进去的值
字典常用方法就讲到这里,学习了这么多,来做一个练习吧! 4.字典的应用实例我为大家找了一个很好的例子,《用python实现词频统计》打开它练习一下吧。 如果对你有帮助,不要忘记点赞评论关注加收藏哦! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/25 14:21:20- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |