| |
|
开发:
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完全自学教程16:Python中的元组系列知识 -> 正文阅读 |
|
[Python知识库]零基础Python完全自学教程16:Python中的元组系列知识 |
欢迎你来到站长学堂,学习站长在线出品的在线课程《零基础?Python完全自学教程》今天给大家分享的是第16课《?Python中的元组系列知识》。本节课是一个大课,我分了这些知识点进行详细讲解:元组的创建和删除详解、访问元组元素详解、遍历元组详解、修改元组详解、元组推导式详解及元组和列表的七大区别详解。 目录 16.1、python中元组的创建和删除详解温馨提示:本内容和前面所学的《Python中列表的创建和删除详解》内容基本一致,大家可以对照学习。 16.1.1、元组的概念:(和列表类似) 我们可以回顾一下列表的概念: 列表(list)是由一系列的特定顺序排列的元素。它是Python中内置的可变序列。在形式上,列表的所有元素都放在一对中括号“[]”里面,两个相邻的元素之间,使用英文逗号“,”隔开。在内容上,列表可以将整数、实数、字符串、列表、元组任何类型的元素放入列表中,并且同一列表中,元素的类型可以不同,因此他们之间没有任何关系。 元组(tuple)是python中另一个重要的序列结构,与列表类似,也是有一系列按特定排列的元素组成。但是,它是不可变序列,因此元组也可以称之为不可变的列表。在形式上元组的所有元素都放在一对小括号“()”中,相邻的元素之间使用英文逗号“,”分隔。在内容上,可以将整数、实数、字符串、列表、元组、字典、集合等任何类型的内容放入元组中,并且同一个元组中,元素的类型可以不同,因此他们之间没有任何关系。通常情况下,元组用于保存程序不可修改的内容。 从元组和列表的定义来看,这两种结构比较相似,但是他们之间的主要区别就是一个不可变序列,一个是可变序列。即元组中的元素不可以单独修改,而列表可以任意修改。 了解了什么是元组,接下来就讲讲创建元组的几个方法了: 16.1.2、在Python中使用赋值运算符“=”创建元组:(和列表类似) 在Python中,创建元组可以使用赋值运算符“=”创建元组,右边是赋值,左边是变量。具体语法如下:
其中,tuplename 表示元组的名称,可以是任何符合Python命名规则的标识符;element 1 , element 2 ,表示元组中的元素,这些元素的数量没有限制,内容上只要是Python中支持的数据类型如整数、实数、字符串、列表、元组都可以。 如下面的都是合法的元组:
在 Python 中,元组通常都是使用一对小括号将所有元素包围起来的,但小括号不是必须的,只要将各元素用逗号隔开,Python 就会将其视为元组,请看下面的例子:
在Python?IDLE?中运行结果如下:
当,创建的元组只有一个元素时,需要在元素的后面加“,”,如:
运行结果为:
当,创建的元组只有一个元素时,元素的后面没有加“,”,被视为定义了一个字符串,如:
运行结果为:
温馨提示:在Python中的内置函数type()可以检测变量的类型,代码如下:
运行结果为:
16.1.3、在Python中创建空的元组():(和列表类似) 在Python中,是可以创建空的元组的,如创建一个空元组代码如下
和空列表一样的原理,我们经常会用到空的元组。一般情况下,空元组用于为函数传递一个空的值,或者返回一个空的值。 16.1.4、在Python中使用 在Python中,可以使用 我们先回顾一下range()函数的使用方法:(在《Python中的循环语句》里面学过)
各参数说明如下: start:用于指定技术的起始值,可以省略。如果省略则从0开始。 end:用于指定计数的结束值,不能省略。结束值不包括该值,如range(100),则表示值为0~99。当range()函数只有一个参数时,即表示指定计数的结束值。 step:用于指定步长,即两个数之间的间隔,可以省略。如果省略则表示步长为1。如range(1,7)则表示值为1、2、3、4、5、6
其中,data表示可以转换为列表的数据,包括range对象、字符串、元组、或者其他可以迭代类型的数据。 如:创建一个0~20(不包括20)的所有偶数列表,可以使用以下代码:
运行结果如下:
注:使用 16.1.5、在Python中使用del命令删除元组(和列表类似) 在Python中,删除已经创建的元组是很简单的,使用?del?命令即可,语法格式如下:
如:删除一个叫做 shige 的元组:
但是,如果你删除的是一个不存在的元组,就会报错,如:
当然上面不管是定义了shige 还是没有定义shige 的元组,都是一样,删除sg元组都是不存在的,报错结果如下:
实际开发中并不经常使用 del 来删除元组,因为 Python 自带的垃圾回收机制会自动销毁无用的元组,即使开发者不手动删除,Python 也会自动将其回收。 16.2、在Python中访问元组元素详解16.2.1、使用print()函数输出内容。 在Python中,如果将元组中的内容输出是比较简单的,使用print()函数即可。 如:我们输出上个知识点的内容中的混合的hunhe元组,只要使用函数print(hunhe)即可
执行结果如下:
经过对比,不是 输入的是 单引号、双引号、三引号 ,输出的都是 单引号。 通过上述的输出,我们发现,在输出元组时,包括了两侧的小括号()的。 16.2.2、通过索引的方式访问元组元素。 元组是Python中另一个重要的序列结构,也是一个有序的集合,所以要访问元组中的任何元素,您只需要告诉Python元素的位置(索引)。要访问元组元素,首先指出元组的名称,然后指出元素在元组中的位置。 下面,我们来输出混合元组中的第3个和第2个元素,代码如下:
输出的结果为:
昨天的内容:
输出结果为:
上面结果可以看出:在输出的单个元组时,也是包括小括号()。如果是字符串,还不包括左右的引号。 在访问列表元素的时候,我们使用了索引的方法,但是没有讲到切片的方法访问列表元素。在这里,我们讲讲使用切片的方法访问元组。 16.2.3、通过切片的方式访问元组元素。 访问元组元素是可以使用切片的方法,访问元组元素的。 我们访问混合元组的前2个元素,代码为:
运行结果为:
我们访问混合元组的后2个元素,代码为:
运行结果为:
我们访问混合元组的第2个到第3个元素,就会报错了,代码为:
运行结果为:
实例:我们来输出每日一语。
说明:在上述代码中,datetime.datetime.now()用于获取当前日期,weekday()再则是从日期时间对象中获取星期,其值为0~6中的一个,0位星期一,6为星期日。 在2021年11月9日的运行结果为:
16.3、在Python中遍历元组详解站长在线温馨提示:本节教程内容与《在Python中遍历列表详解》大体一致,大家可以对比学习。(基本上就是把列表改成元组,[]改成(),list改成tuple) 我们先解释一下遍历的意思,遍就是全面,到处的意思,历就是行、游历的意思。所谓遍历就是全部走遍,到处周游的意思。 遍历元组就是从头到尾依次从元组中获取数据。 再次强调一下,元组是一种不可变的序列,不能单个修改某一个元素,但是遍历元组的每一个元素还是可以的。 在Python中,遍历元组的方法有很多种,下面介绍一些常用的遍历方法: 16.3.1、直接使用for循环遍历元组 直接使用for循环遍历元组,只能输出元素的值,语法格式如下:
列如,定义Python的设计理念,然后通过for循环遍历该元组,并输出每条内容。代码如下:
执行以后结果如下:
16.3.2、使用for循环和enumerate()函数遍历元组 使用for循环和enumerate()函数可以实现同时输出索引值和元素内容,其语法格式如下:
例如,定义python的设计理念,然后通过for循环和enumerate()函数遍历该元组,并输出索引和每条内容。代码如下:
执行结果如下:
16.3.3、使用for循环和tuple()函数遍历元组 例如,定义python的设计理念,然后通过for循环和tuple()函数遍历该元组,并输出每条内容。代码如下:
执行结果如下:
16.3.4、使用for循环和range()函数遍历元组 定义元组number 的元组,然后通过for循环和range()函数遍历该元组,并输出每条内容。代码如下:
执行结果为:
可以不带索引输出,代码为:
运行结果为:
我们把输出的结果,放在同一行,代码为:
执行结果为:
注意 range()函数只能用于数字的元组,在非数字中就会报错了。 16.3.5、使用for循环和iter()函数遍历元组 列如,定义python的设计理念,然后使用for循环和iter()函数遍历该元组,并输出每条内容。代码如下:
输出结果如下:
16.3.6、使用while循环遍历元组 定义,元组number 的元组,然后通过while循环遍历元组并输出每条内容。代码如下:
运行结果如下:
16.4、在python中修改元组详解回顾一下Python中列表元素的更新,我们分了3节课程来分享,分别是添加列表元素、修改列表元素和删除列表元素。但是在元组中,就不能说添加元组元素、修改元组元素和删除元组元素了,因为元组是不可变的序列,也是一种不可变的列表。当然我们也可以尝试一下修改一个元组元素看看,有什么结果? 我们以Python的设计理念(设计哲学)为例,我们来修改一个参数看看:
运行结果如下:
翻译一下:“TypeError: 'tuple' object does not support item assignment”就是说:TypeError:“tuple”对象不支持项分配 也就是说在Python的元组是不可以单一修改元组元素的。那怎样才能修改元组呢?下面介绍两个方法: 16.4.1、在Python中直接使用赋值运算符“=”给元组重新赋值。 虽然说元组是不可变的序列,我们不能对单个元素的值进行修改,但是,这并不意味着,元组就完全不能修改了。我们可以对元组进行重新赋值:如:
执行结果如下:
16.4.2、在Python中使用加赋值运算符“+”连接两个元组。如:
运行结果如下:
这里值得注意的是,这里是元组和元组之间相“+”是可以的。元组和其他类型就不行了,如:
运行结果如下‘:
翻译一下:“TypeError: can only concatenate tuple (not "list") to tuple”意思是:TypeError:只能将元组(而不是“列表”)连接到元组。 同理,元组也不能和字符串相连接,如:
运行结果:
翻译“TypeError: can only concatenate tuple (not "str") to tuple”意思是:TypeError:只能将元组(而不是“str”)连接到元组。 在这里,还有一点要注意的是:如果元组中只有一个元素时,不要忘记加逗号哦,如:
运行结果为:
?不用翻译了吧,和上面一样的,当元组元素只有一个的时候,被视为字符串,但是加了“,”就被视为元组了哦!
运行结果如下:
16.5、Python中的元组推导式详解我们在《python中的列表推导式详解》中学过,使用列表推导式可以快速生成一个新的列表,或者根据某个列表生成满足指定需求的列表。 生成指定范围的数值列表,语法格式如下:
那么我们使用列表推导式的方法用于元组推导式行不行呢? 我们根据列表推导式的方法,把“[]”改成“()”试一试:
我们也和列表推导式一样的内容:
运行结果如下:
为什么是这样的,而不是下面这样我们想要的呢?
从上面的执行结果可以看出,使用元组推导式生成的结果并不是一个元组,而是一个生成器对象,这一点和列表推导式是不同的。 那么怎样才能使用元组推导式获得新的元组呢? 下面讲解3个方法使用元组推导式获得新的元组: 16.5.1、在Python中使用? 要使用该生成器对象,可以转换成元组或者列表。下面我们就上面的内容进行转换成元组和列表,代码如下:
运行结果如下:
16.5.2、在Python中直接使用?
运行结果为:
16.5.3、?在Python中使用?
运行结果为:
通过上面for循环遍历生成器对象和__next__()方法遍历生成器对象以后,如果还需要使用该生成器对象的话,都必须创建新的生成器对象才行,因为遍历以后,原来的生成器对象已经不存在了,输出的新元组为空。 16.6、python中元组和列表的七大区别详解元组和列表都是属于序列,都是按照特定顺序储存的一组元素,都可以将整数、实数、字符串、列表、元组、字典、集合等任何类型的内容。创建和删除的方法也是一样。 列表和元组之间还是有区别的,下面站长在线整理了它们之间的7大区别: 16.6.1、列表是动态的,属于可变序列,它的元素可以随时增加、修改或者删除,而元组是静态的,属于不可变序列,无法增加、删除、修改元素,除非整体替换。 16.6.2、列表可以使用append()、extend()、insert()、remove()和pop()等方法实现添加和修改列表元素,而元组则没有这几个方法,因为不能向元组中添加和修改元素。同样,也不能删除元素,可以整体替换。 16.6.3、列表可以使用切片访问和修改列表中的元素。元组也支持切片,但是它只支持通过切片访问元组中的元素,不支持修改。 16.6.4、元组比列表的访问和处理速度快。所以如果只需要对其中的元素进行访问,而不进行任何修改,建议使用元组而不使用列表。 16.6.5、因为列表可以修改,元组不可以修改,因此元组比列表具有更高的安全性。 16.6.6、列表不能作为字典的键,而元组可以。 16.6.7、存储方式不同:空列表 比空元组多占用16个字节。
相关阅读: 1、认识python 11、Python中的选择语句 12、Python中的循环语句 13、Python中的break语句、continue语句和pass语句 15、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年11日历 | -2024/11/16 0:47:09- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |