Python 程序设计入门(009)—— 元组的操作

Python 程序设计入门(009)—— 元组的操作

目录

  • Python 程序设计入门(009)—— 元组的操作
    • 一、元组和列表的区别
    • 二、创建元组
        • 1、使用赋值语句创建元组
        • 2、使用 tuple() 函数创建元组
    • 三、访问元组中的元素
        • 1、使用索引访问元组的元素
        • 2、使用切片访问元组元素
    • 四、修改元组
    • 五、删除元组

元组(tuple)是 Python 中另一个重要的序列结构,和列表类似,元组也是由一系列按特定顺序排序的元素组成。

元组也可以看做是不可变的列表,通常情况下,元组用于保存无需修改的内容。从形式上看,元组的所有元素都放在一对小括号中,相邻元素之间用逗号(,)分隔。

一、元组和列表的区别

元组和列表同属序列类型,且都可以按照特定顺序存放一组数据,数据类型不受限制,只要是 Python 支持的数据类型就可以。元组和列表(list)的不同之处在于:

(1)列表是可变序列,它的元素可以随时修改或者删除;元组是不可变序列,其中的元素不能修改,除非整体替换。
(2)列表可以使用 append()、extend()、insert()、remove() 和 pop() 等方法实现添加和修改列表元素,而元组没有这些方法,因为不能向元组添加和修改元素,同样也不能删除元素。

(3)列表可以使用切片访问和修改列表中的元素;元组也支持切片,但是它只支持通过切片访问元组中的元素,不支持修改。

(4)元组比列表的访问和处理速度快。所以如果只需要对其中的元素进行访问,而不进行任何修改,则使用元组。

(5)列表不能作为字典的键,而元组可以。

元组和列表最大的区别就是,列表中的元素可以进行任意修改;而元组中的元素无法修改,除非将元组整体替换掉。可以理解为,**tuple 元组是一个只读版本的 list 列表。**从总体上来说,元组的性能速度优于列表。

元组和列表可以互相转换:

tuple() 函数接收一个列表,返回一个包含相同元素的数组。

list() 函数接收一个元组,返回一个列表。

二、创建元组

1、使用赋值语句创建元组

使用赋值语句创建元组的语法格式如下:

tuplename = (element1, element2, element3, ..., elementn)

例如:

tuple1 = ("张三","李四","王五","张鹏","刘飞")
tuple2 = (20,21,22,19,20)
tuple3 = ("Python",19,[1,2],('c',2.0))
tuple4 = ()   # 创建一个空元组
print(tuple1)
print(tuple2)
print(tuple3)
print(tuple4)  
print(type(tuple4))运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
('张三', '李四', '王五', '张鹏', '刘飞')
(20, 21, 22, 19, 20)
('Python', 19, [1, 2], ('c', 2.0))
()
<class 'tuple'>

在 Python 中,元组通常使用一对小括号将所有元素括起来,但小括号不是必须的,只要将各元素用逗号隔开,Python 就会将其视为元组,例如:

tuple1 = "张三","李四","王五","张鹏","刘飞"
print(tuple1)
print(type(tuple1))运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
('张三', '李四', '王五', '张鹏', '刘飞')
<class 'tuple'>

注意:当创建的元组中只有一个字符串类型的元素时,该元素后面必须要加一个逗号,否则 Python 解释器会将它视为字符串。例如:

tuple1 = ("张三")
tuple2 = ("Tom",)
print(tuple1)
print(type(tuple1))
print(tuple2)
print(type(tuple2))运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
张三
<class 'str'>
('Tom',)
<class 'tuple'>

2、使用 tuple() 函数创建元组

Python 提供了内置函数 tuple(),用来将其它数据类型转换为元组类型。

tuple() 函数的语法格式如下:

tuple(data)
说明:data 表示可以转化为元组的数据,包括字符串、元组、range 对象等。

例如:

tuple1 = tuple()         # 创建空元组
print(tuple1)
tuple2 = tuple("hello")  # 将字符串转换成元组
print(tuple2)
list1 = ["Python","Java","C++","JavaScript"]
tuple3 = tuple(list1)    # 将列表转换成元组
print(tuple3)
dict1 = {"张三":20,"李四":19,"王五":20}
tuple4 = tuple(dict1)    # 将字典转换成元组
print(tuple4)
range1 = range(1,6)
tuple5 = tuple(range1)   # 将区间转换成元组
print(tuple5)运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
()
('h', 'e', 'l', 'l', 'o')
('Python', 'Java', 'C++', 'JavaScript')
('张三', '李四', '王五')
(1, 2, 3, 4, 5)

三、访问元组中的元素

和列表一样,可以使用索引(Index)访问元组中的某个元素(得到的是一个元素的值),也可以使用切片访问元组中的一组元素(得到的是一个新的子元组)。

1、使用索引访问元组的元素

语法格式为:

tuplename[index]
说明:tuplename 表示元组名字,index 表示索引值。

例如:

tuple1 = ("Python","Java","C++","JavaScript")
print(tuple1[1])
print(type(tuple1[1]))
print(tuple1[-1])
print(type(tuple1[-1]))运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
Java
<class 'str'>
JavaScript
<class 'str'>

2、使用切片访问元组元素

语法格式为:

tuplename[start : end : step]
说明:start 表示起始索引,end 表示结束索引,step 表示步长。

例如:

tuple1 = ("Python","Java","C++","JavaScript","Go")
print(tuple1[:])
print(tuple1[1:4])
print(tuple1[::-1])
print(tuple1[-1:-3:-1])
print(tuple1[1:2])
print(type(tuple1[1:2]))运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
('Python', 'Java', 'C++', 'JavaScript', 'Go')
('Java', 'C++', 'JavaScript')
('Go', 'JavaScript', 'C++', 'Java', 'Python')
('Go', 'JavaScript')
('Java',)
<class 'tuple'>

四、修改元组

元组是不可变序列,元组中的元素不能被修改,只能创建一个新的元组去替代旧的元组。

例如:

tuple1 = ("Python","Java","C++","JavaScript")
print(tuple1)
tuple1 = ("Python","Go","Java","C++","JavaScript")
print(tuple1)
tuple2 = (1,2,3)
tuple3 = (11,12,13)
tuple4 = tuple2 + tuple3
print(tuple2)
print(tuple3)
print(tuple4)运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
('Python', 'Java', 'C++', 'JavaScript')
('Python', 'Go', 'Java', 'C++', 'JavaScript')
(1, 2, 3)
(11, 12, 13)
(1, 2, 3, 11, 12, 13)

五、删除元组

当创建的元组不再使用时,可以通过 del 关键字将其删除,例如:

tuple1 = ("Python","Java","C++","JavaScript")
print(tuple1)
del tuple1
print(tuple1)运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
('Python', 'Java', 'C++', 'JavaScript')
Traceback (most recent call last):File "C:\Python\Python38\First.py", line 4, in <module>print(tuple1)
NameError: name 'tuple1' is not defined

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/23589.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Maven可选依赖和排除依赖简单使用

可选依赖 可选依赖指对外隐藏当前所依赖的资源 在maven_04_dao的pom.xml,在引入maven_03_pojo的时候&#xff0c;添加optional <dependency><groupId>com.rqz</groupId><artifactId>maven_03_pojo</artifactId><version>1.0-SNAPSHOT&…

无涯教程-Perl - Subroutines(子例程)

定义子程序 Perl编程语言中 Subroutine子程序定义的一般形式如下: sub subroutine_name {body of the subroutine } 调用该Perl Subroutine的典型方式如下- subroutine_name( list of arguments ); 在Perl 5.0之前的版本中&#xff0c;调用 Subroutine的语法略有不同&…

设计模式之模板方法

一、概述 定义一个操作中的算法的骨架&#xff0c;将一些步骤延迟到子类中。 TemplateMethod使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。 二、适用性 1.一次性实现一个算法的不变的部分&#xff0c;并将可变的行为留给子类来实现。 2.各子类中公共…

Java课题笔记~ MyBatis接口开发(代理开发)

使用XML文件进行开发&#xff0c;在调用SqlSession进行操作时&#xff0c;需要指定MyBatis映射文件中的方法&#xff0c;这种调用方式过于烦琐。为解决此问题&#xff0c;MyBatis提供了接口开发的方式。 接口开发的目的&#xff1a; 解决原生方式中的硬编码 简化后期执行SQL …

nacos本地搭建+springCloud服务注册中心-nacos(简易实现)

一.nacos概述 nacos官网 二.Windows使用搭建nacos 较为完整使用参考 1.安装nacos 去nacos github下载nacos最新稳定版本&#xff0c;我用的是nacos-server-2.2.3.zip&#xff0c;下载后解压&#xff0c;得到 2.创建数据库 启动mysql&#xff0c;创建数据库nacos&#xff…

Prometheus(八)-网络嗅探-黑盒监控

介绍 Blackbox Exporter是Prometheus社区提供的官方黑盒监控解决方案&#xff0c;其允许用户通过&#xff1a;HTTP、HTTPS、DNS、TCP以及ICMP的方式对网络进行探测。用户可以直接使用go get命令获取Blackbox Exporter源码并生成本地可执行文件&#xff1a; go get prometheus…

掌握 JVM 的参数及配置

点击下方关注我&#xff0c;然后右上角点击...“设为星标”&#xff0c;就能第一时间收到更新推送啦~~~ JVM&#xff08;Java虚拟机&#xff09;是Java编程语言的核心组件之一&#xff0c;它负责执行Java程序&#xff0c;并提供一系列参数和配置选项&#xff0c;可以调整Java程…

Docker实战-操作Docker容器实战(一)

导语   在之前的分享中&#xff0c;我们介绍了关于如何去操作Docker镜像&#xff0c;下面我们来看看如何去操作容器。 简单来讲&#xff0c;容器是镜像运行的一个实例&#xff0c;与镜像不同的是镜像只能作为一个静态文件进行读取&#xff0c;而容器是可以在运行时进行写入操…

docker端口映射详解(随机端口、指定IP端口、随意ip指定端口、指定ip随机端口)

目录 docker端口映射详解 一、端口映射概述&#xff1a; 二、案例实验&#xff1a; 1、-P选项&#xff0c;随机端口 2、使用-p可以指定要映射到的本地端口。 Local_Port:Container_Port&#xff0c;任意地址的指定端口 Local_IP:Local_Port:Container_Port 映射到指定地…

flask---闪现/请求扩展/g对象

闪现 # 一个请求---》假设出错了---》重定向到另一个地址---》把错误信息在另一个返回中看到 错误信息放个位置----》另一个请求过来&#xff0c;去那个位置拿 # 把一些数据&#xff0c;放在某个位置---》后期可以去取出来----》取完不用删除&#xff0c;就没了 def index():s…

Docker安装Grafana以及Grafana应用

Doker基础 安装 1、 卸载旧的版本 sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine 2、需要的安装包 sudo yum install -y yum-utils 3、设置镜像的仓库 yum-config-m…

Spring Boot 单元测试

目录 1.什么是单元测试&#xff1f; 2.单元测试的优点 3.Spring Boot 单元测试使用 3.1 生成单元测试的类 3.2 添加 Spring Boot 框架测试注解&#xff1a;SpringBootTest 3.3 添加单元测试业务逻辑 3.4 注解 Transactional 4. 断言 1.什么是单元测试&#xff1f; 单元…

39.利用matlab寻找素数(matlab程序)

1.简述 MATLAB嵌套循环允许使用一个循环在另一循环内&#xff0c;下面用一个嵌套循环来把所有从1到100的素数显示出来。 2.代码 %% 学习目标&#xff1a;寻找素数 clear sum5; %求0&#xff5e;100素数之和 ss0; %用来标定是否是素数&#xff0c;0表示不是 p…

C#使用EmguCV播放视频

目录 一、前言 1、简介 2、测试工程代码下载链接 3、EmguCV 库文件下载链接 二、工程环境配置 1、EmguCV控件添加引用 &#xff08;1&#xff09;窗口控件添加 &#xff08;2&#xff09;相关Dll文件添加添加引用 &#xff08;3&#xff09;工程运行基础文件夹添加 &a…

CVS,SVN,Git,Mercurial 代码管理工具

现代软件开发过程中要实现高效的团队协作&#xff0c;需要使用代码分支管理工具实现代码的共享、追溯、回滚及维护等功能。目前流行的代码管理工具&#xff0c;包括 CVS&#xff0c;SVN&#xff0c;Git&#xff0c;Mercurial 等 CVS 和 SVN 是集中管理&#xff0c;Git 具有非常…

【开发问题】flink的sql任务,用命令行执行

flink-sql 命令行flink-sql的客户端sql文件地址sql的内容 命令行 /mnt/flink/flink-1.17.1/bin/sql-client.sh embedded -f /mnt/flink/flink-1.17.1/examples/sql/oracle2Oracle flink-sql的客户端 /mnt/flink/flink-1.17.1/bin/sql-client.shsql文件地址 /mnt/flink/flink-1…

解决github打不开的方法

解决github打不开的方法 本文参考文章&#xff1a;解决可ping通但无法访问github网站的问题 一、确定域名github.com的ip地址 进入网址 IP/服务器github.com的信息 - 站长工具 (chinaz.com)&#xff0c;查看 ip 地址。 20.205.243.166 github.com二、确定域名github.global.…

spring boot java使用XEasyPdf生成pdf文档

java使用XEasyPdf生成pdf文档 spring boot java使用XEasyPdf生成pdf文档第一步导入maven坐标,pom.xml全部贴上第二步编写代码代码实战&#xff1a; spring boot java使用XEasyPdf生成pdf文档 第一步导入maven坐标,pom.xml全部贴上 <?xml version"1.0" encoding…

使用ubuntu-base制作根文件系统

1&#xff1a;ubuntu官网下载最小根文件系统&#xff1a; 放置到电脑的ubuntu中&#xff0c; Mkdir Ubuntu_rootfs Cd Ubuntu_rootfs Sudo tar –zxvf Ubuntu-bash-xxxxxx.tar.gz 2&#xff1a;电脑的ubuntu安装qemu搭建arm模拟系统 将/usr/bin/qemu-arm-static/(64位拷贝…

Milvus Cloud凭借AI原生,可视化优势荣登全球向量数据库性能排行榜VectorDBBench.com 榜首

在当今的大数据时代,随着人工智能技术的快速发展,向量数据库作为处理大规模数据的关键工具,其性能和效率越来越受到关注。最近,全球向量数据库性能排行榜 VectorDBBench.com 公布了一份最新的评估报告,引人瞩目的是,成立不到一年的新兴公司 Milvus Cloud 凭借其 AI 原生和…