不可变序列:元组 | Python从入门到精通:进阶篇之十一

简介: 元组是一个不可变序列。它的操作方式基本上和列表是一致的。

上一节:初识range函数

概述

元组(tuple)是一个不可变序列。它的操作方式基本上和列表是一致的。所以在操作元组的时候将其当做一个不可变的列表就可以了。

那什么时候用元组呢?

当我们希望我们的数据不改变的时候就需要使用元组,其他情况用列表就可以了。所以元组的使用范围是非常有限的,但是还是有必要学习一下。

用法

使用()来创建元组。

#创建元组
my_tuple=() #创建了一个空元组
print(my_tuple,type(my_tuple))

执行结果为:
image.png
上面我们创建了一个空元组,接下来演示一下如何创建一个有内容的元组:

my_tuple=(1,2,3,4,5) #创建了一个5元素的元组
print(my_tuple)

执行结果为:
image.png
可以看到此时就将元组的内容进行输出了。
也可以结合索引去操作:

my_tuple=(1,2,3,4,5) #创建了一个5元素的元组
print(my_tuple[3])

执行结果为:
image.png
但是注意元组是不可变对象,不能尝试给元组中的元素进行重新赋值。

当元组不是空元组的时候,()可以省略:

my_tuple=10,20,30,40
print(my_tuple,type(my_tuple))

执行结果为:
image.png

可以看到,类型仍然是一个元组,而且形式上是自动加了()的。

如果元组不是空元组,至少要有一个“,”,即使是一个元素,有没有()都是一样的,要有逗号:

my_tuple=40,
print(my_tuple,type(my_tuple))

执行结果为:
image.png
有了这个逗号,才可以被系统识别为一个元组。上述的代码里面如果不加逗号,会被系统认为是int类型的一个数据。可以自己测试一下。
image.png

还有一种用法:元组的解包(解构),就是指将元组当中的每一个元素都赋值给一个变量。

my_tuple=10,20,30,40
a,b,c,d=my_tuple
print("a=",a)
print("b=",b)
print("c=",c)
print("d=",d)

执行结果为:
image.png
这个是非常方便的一个用法,常用于交换两个变量的值。

a=100
b=300
print(a,b)
a,b=b,a #利用元组的解包交换两个数字的值
print(a,b)

执行结果为:
image.png
可以看到这是非常容易的,不像其他语言中那样还要借助一个中间变量来实现。

这里面还有一种情况需要注意,如果重新赋值的数量对应不上的话是会报错的,但是如果数量太多是很麻烦的,就可以这么处理下:

my_tuple=10,20,30,40
a,b,*c=my_tuple
print("c=",c)

执行结果为:
image.png
可以看到c变成一个列表了。

总结:在对一个元组进行解包时,变量的数量必须和元组中元素的数量一致,也可以在变量前面加入一个*,这样他将会获取到元组中所有剩余的元素,并返回一个列表。
如果*是在中间变量的前面,那么将获取中间元素的值,返回列表:

my_tuple=10,20,30,40
a,*b,c=my_tuple
print("a=",a)
print("b=",b)
print("c=",c)

执行结果为:
image.png
同理,放到第一个变量前面也是可以的。
但是注意只可以有一个*,不可以同时出现两个及以上。
解包的操作对于字符串和列表也是同样适用的。
image.png

配套视频点击此处查看

获取更多内容,请订阅Python学习站官方技术圈!

相关文章
|
7天前
|
数据采集 存储 JSON
Python爬虫开发:BeautifulSoup、Scrapy入门
在现代网络开发中,网络爬虫是一个非常重要的工具。它可以自动化地从网页中提取数据,并且可以用于各种用途,如数据收集、信息聚合和内容监控等。在Python中,有多个库可以用于爬虫开发,其中BeautifulSoup和Scrapy是两个非常流行的选择。本篇文章将详细介绍这两个库,并提供一个综合详细的例子,展示如何使用它们来进行网页数据爬取。
|
11天前
|
存储 算法 数据挖掘
【2023年中国高校大数据挑战赛 】赛题 B DNA 存储中的序列聚类与比对 Python实现
本文介绍了2023年中国高校大数据挑战赛赛题B的Python实现方法,该赛题涉及DNA存储技术中的序列聚类与比对问题,包括错误率分析、序列聚类、拷贝数分布图的绘制以及比对模型的开发。
26 1
【2023年中国高校大数据挑战赛 】赛题 B DNA 存储中的序列聚类与比对 Python实现
|
5天前
|
存储 索引 Python
Python学习笔记----列表、元组和字典的基础操作
这篇文章是一份Python学习笔记,涵盖了列表、元组和字典的基础操作,包括它们的创建、修改、删除、内置函数和方法等。
Python学习笔记----列表、元组和字典的基础操作
|
11天前
|
机器学习/深度学习 数据采集 算法
【优秀python算法毕设】基于python时间序列模型分析气温变化趋势的设计与实现
本文介绍了一个基于Python的时间序列模型,用于分析和预测2021-2022年重庆地区的气温变化趋势,通过ARIMA和LSTM模型的应用,揭示了气温的季节性和趋势性变化,并提供了对未来气温变化的预测,有助于气象预报和相关决策制定。
【优秀python算法毕设】基于python时间序列模型分析气温变化趋势的设计与实现
|
5天前
|
存储 索引 Python
Python的元组是什么
【8月更文挑战第14天】元组是Python中有序且不可变的数据集合,用于存储多个项目的序列。一旦创建,元组内的元素不能被修改、添加或删除,确保了数据的安全性和可靠性。元组使用圆括号定义,元素间以逗号分隔。
12 5
|
4天前
|
数据采集 数据可视化 算法
GitHub星标68K!Python数据分析入门手册带你从数据获取到可视化
Python作为一门优秀的编程语言,近年来受到很多编程爱好者的青睐。一是因为Python本身具有简捷优美、易学易用的特点;二是由于互联网的飞速发展,我们正迎来大数据的时代,而Python 无论是在数据的采集与处理方面,还是在数据分析与可视化方面都有独特的优势。我们可以利用 Python 便捷地开展与数据相关的项目,以很低的学习成本快速完成项目的研究。
|
5天前
|
数据采集 数据可视化 算法
GitHub星标68K!Python数据分析入门手册带你从数据获取到可视化
Python作为一门优秀的编程语言,近年来受到很多编程爱好者的青睐。一是因为Python本身具有简捷优美、易学易用的特点;二是由于互联网的飞速发展,我们正迎来大数据的时代,而Python 无论是在数据的采集与处理方面,还是在数据分析与可视化方面都有独特的优势。我们可以利用 Python 便捷地开展与数据相关的项目,以很低的学习成本快速完成项目的研究。 今天给小伙伴们分享的这份Python数据分析入门手册本着实用性的目的,着眼于整个数据分析的流程,介绍了从数据采集到可视化的大致流程。
|
10天前
|
存储 数据库 C++
"深入剖析Python元组(tuple):与列表的对比、特性解析及高效应用场景展示"
【8月更文挑战第9天】Python元组与列表虽均用于存储元素集合,但有本质差异。元组不可变,创建后无法修改,适合保护数据不被意外更改的场景,如作字典键或传递固定值。列表则可变,支持动态增删改,适用于需频繁调整的数据集。元组因不可变性而在性能上有优势,可用于快速查找。两者各有千秋,根据具体需求选择使用。例如,元组可用于表示坐标点或日期,而列表更适合管理用户列表或库存。
16 1
|
12天前
|
Python
【Python】如何判断时间序列数据是否为平稳时间序列或非平稳时间序列?
本文介绍了如何通过观察均值和方差的变化、ADF单位根检验、KPSS检验以及差分操作来判定时间序列数据是否为平稳或非平稳,并提供了Python代码示例进行实际检验。
25 0
【Python】如何判断时间序列数据是否为平稳时间序列或非平稳时间序列?
|
12天前
|
数据采集 算法 数据挖掘
【2023 年第二届钉钉杯大学生大数据挑战赛】 初赛 B:美国纽约公共自行车使用量预测分析 问题三时间序列预测Python代码分析
本文介绍了2023年第二届钉钉杯大学生大数据挑战赛初赛B题的Python代码分析,涉及美国纽约公共自行车使用量的时间序列预测、网络分析和聚类分析。
22 0
【2023 年第二届钉钉杯大学生大数据挑战赛】 初赛 B:美国纽约公共自行车使用量预测分析 问题三时间序列预测Python代码分析