Python数据结构——元组

简介: Python数据结构——元组

一、元组和列表的区别

       元组与列表和字符串一样,是序列的一种。而元组与列表的唯一不同的元组不能修改,元组和字符串都具有不可变性。列表的可变性可能更方便处理复杂问题,例如更新动态数据等,但很多时候不希望某些处理过程修改对象内容,例如敏感数据,这就需要元组的不可变性。

二、创建元组

(一)使用圆括号()创建

       使用圆括号将有序元素括起来,并用逗号隔,可以创建元组。注意,这里的号是必须存在的,即使元组当中只有一个元素,后面也需要有逗号。在Python中定义元组的关健是当中的逗号,圆括号却可以省略。当输出元组时,Python会自动加上一对圆括号。同样,若不向圆括号中传入任何元素,则会创建一个空元组。

tuple1=(1,2.5,('three','four'),[True,5],False)            # 使用圆括号( )创建元组
tuple1
 
tuple2=2,True,'five',3.5                                  # 省略圆括号
tuple2
 
empty_tuple=()                                            # 创建空元组
empty_tuple

(二)使用tuple函数创建

       tuple 函数能够将其他数据结构对象转换成元组类型。先创建一个列表,将列表传入tuple函数中,再转换成元组,即可实现创建元组。

tuple1=tuple([1,2.5,('three','four'),[True,5],False])    # 使用函数tuple( )将列表转换为元组
tuple1
 
tuple2=tuple((2,True,'five',3.5))
tuple2
 
empty_tuple=tuple()
empty_tuple

       通过上面两部分代码可以看出,创建元组与创建列表的方法极其类似,只是元组使用圆括号来包括元素,而列表使用方括号。

三、元组常用函数和方法

       元组是不可变的,类似于对列表元素的增添、删除、修改等处理都不能作用在元组对象上,但元组属于序列类型数据结构,因此可以在元组对象上进行元素索引访问提取和切片操作。特别的,对于元组元素的提取,可以使用元组解包简化赋值操作。

(一)元组元素提取

       利用序列的索引进行访问提取和切片操作,可以提取元组中的元素和切片。

1、元组索引访问提取

       与列表索引访问提取元素一样,只要传人元素索引,就能够获得对应元素。同样,若传入的索引超出元组索引范围,结果会返回一个错误。

tuple3=('China','America','England','France')
tuple3[0]                                               # 提取元组第1个元素
tuple3[10]                                              # 传入索引超出元组索引范围

2、元组切片操作提取

       类似的,通过操作也可以获取元组的切片,并且无须考虑超出索引范围的问题。

tuple3[-2::-1]                                  # 提取元组倒数第2个元素到左端之间所有元素
tuple3[1:10]                                    # 超出元素索引范围

(二)元组解包

       将元组中的各个元素赋值给多个不同变量的操作通常称为元组解包,使用格式为obj_1,0bj_2,……,obj_n=tuple。由于创建元组时可以省略圆括号,因此元组解包可以看成是多条赋值语句的集合。可见,Python在赋值操作上的处理非常灵活,一句简单的元组解包代码就可以实现多条赋值语句的功能。

A,B,C,D=tuple3                                   # 将元组中各元素分别赋值给对应变量
A
C
x,y,z=1,True,'one'                               # 利用元组解包进行多个变量赋值
x
z

(三)元组常用方法和函数

       相比于列表,由于元组无法修改元素,所以元组的方法和函数相对较少,但仍然能够对元组进行元素位置查询等操作。下表列出了一些常用的元组方法和函数。

# 使用count( )函数进行元素计数
tuple4=('A','D','C','A','C','B','B','A')
tuple4.count('B')
# 使用index( )函数获取元素在元组中第一次出现的位置索引
tuple4.index('C')
# 使用sorted( )对元组元素进行排序
sorted(tuple4)
# 使用len( )函数获取元组长度
len(tuple4)
# 使用元组加法合并两元组
(1,2,3)+(4,5,6)
# 使用元组乘法重复合并元组
(10,20,30,40)*3

四、转换列表为元组并进行取值操作

(一)任务描述

       列表和元组都是序列结构,它们本身相似,但又有一点不同的地方。将列表['pen','paper',10,False,2.5]转换为元组类型,并提取出当中的布尔值。

(二)任务分析

可通过如下步骤实现上述任务。

(1)使用方括号创建列表['pen', 'paper',10,False, 2.5],并赋值给变量。

(2)查看变量的数据类型。

(3)将变量转变成 tuple 类型。

(4)查看变量的数据类型,确定是否转换为元组。

(5)查询元组中元素 False 的位置。

(6)提取元素 False 并赋值。


(三)任务实现

根据任务分析,具体步骤如下。


(1)使用方括号创建列表对象['pen', 'paper',10,False, 2.5],并赋值给变量。

(2)使用 type 函数查看此时变量的数据类型。

(3)使用 tuple 函数将变量转变成元组类型。

(4)再次使用 type 函数确定是否完成转换。

(5)使用元组方法 index 分别查询元素 False 的位置索引。

(6)提取元素 False 并赋值。

task_tuple=['pen','paper',10,False,2.5]
type(task_tuple)
task_tuple=tuple(task_tuple)                 # 转换列表对象为元组类型
type(task_tuple)                             # 查看对象的数据类型
Index=task_tuple.index(False)                # 查询元素位置索引
bool=task_tuple[Index]                       # 提取元组元素
print(bool)                                  # 查看提取元素

目录
相关文章
|
3月前
|
存储 监控 安全
企业上网监控系统中红黑树数据结构的 Python 算法实现与应用研究
企业上网监控系统需高效处理海量数据,传统数据结构存在性能瓶颈。红黑树通过自平衡机制,确保查找、插入、删除操作的时间复杂度稳定在 O(log n),适用于网络记录存储、设备信息维护及安全事件排序等场景。本文分析红黑树的理论基础、应用场景及 Python 实现,并探讨其在企业监控系统中的实践价值,提升系统性能与稳定性。
78 1
|
4月前
|
人工智能 前端开发 数据处理
如何将Python元组转换为列表
本文介绍了在Python中将元组转换为列表的方法。通过内置的`list()`函数,可以轻松地将一个元组转换为列表。此外,文章还提供了如何使用列表推导式和`itertools.chain()`方法将包含多个元组的列表展平为单一列表的示例。这些方法对于数据处理和转换非常实用,能够帮助开发者高效操作序列类型数据。文中附有代码实例及输出结果,便于理解与实践。
|
7月前
|
存储 人工智能 索引
Python数据结构:列表、元组、字典、集合
Python 中的列表、元组、字典和集合是常用数据结构。列表(List)是有序可变集合,支持增删改查操作;元组(Tuple)与列表类似但不可变,适合存储固定数据;字典(Dictionary)以键值对形式存储,无序可变,便于快速查找和修改;集合(Set)为无序不重复集合,支持高效集合运算如并集、交集等。根据需求选择合适的数据结构,可提升代码效率与可读性。
|
10月前
|
存储 缓存 监控
局域网屏幕监控系统中的Python数据结构与算法实现
局域网屏幕监控系统用于实时捕获和监控局域网内多台设备的屏幕内容。本文介绍了一种基于Python双端队列(Deque)实现的滑动窗口数据缓存机制,以处理连续的屏幕帧数据流。通过固定长度的窗口,高效增删数据,确保低延迟显示和存储。该算法适用于数据压缩、异常检测等场景,保证系统在高负载下稳定运行。 本文转载自:https://www.vipshare.com
263 66
|
8月前
|
安全 数据处理 索引
深入探讨 Python 列表与元组:操作技巧、性能特性与适用场景
Python 列表和元组是两种强大且常用的数据结构,各自具有独特的特性和适用场景。通过对它们的深入理解和熟练应用,可以显著提高编程效率和代码质量。无论是在数据处理、函数参数传递还是多线程环境中,合理选择和使用列表与元组都能够使得代码更加简洁、高效和安全。
177 9
|
11月前
|
存储 开发者 索引
Python 中常见的数据结构
这些数据结构各有特点和适用场景,在不同的编程任务中发挥着重要作用。开发者需要根据具体需求选择合适的数据结构,以提高程序的效率和性能
241 59
|
11月前
|
存储 索引 Python
Python编程数据结构的深入理解
深入理解 Python 中的数据结构是提高编程能力的重要途径。通过合理选择和使用数据结构,可以提高程序的效率和质量
256 59
|
11月前
|
存储 开发者 Python
Python 中的数据结构与其他编程语言数据结构的区别
不同编程语言都有其设计理念和应用场景,开发者需要根据具体需求和语言特点来选择合适的数据结构
252 55
|
10月前
|
存储 运维 监控
探索局域网电脑监控软件:Python算法与数据结构的巧妙结合
在数字化时代,局域网电脑监控软件成为企业管理和IT运维的重要工具,确保数据安全和网络稳定。本文探讨其背后的关键技术——Python中的算法与数据结构,如字典用于高效存储设备信息,以及数据收集、异常检测和聚合算法提升监控效率。通过Python代码示例,展示了如何实现基本监控功能,帮助读者理解其工作原理并激发技术兴趣。
190 20
|
11月前
|
存储 算法 搜索推荐
Python 中数据结构和算法的关系
数据结构是算法的载体,算法是对数据结构的操作和运用。它们共同构成了计算机程序的核心,对于提高程序的质量和性能具有至关重要的作用
195 33

热门文章

最新文章

推荐镜像

更多