7.Python【序列】- 元组

简介: 7.Python【序列】- 元组

认识元组

元组(tuple)是不可变序列,也是Python 最基本的数据结构之一,具有如下特点。

  • 元组是有序的数据结构。内部数据的位置排列固定。
  • 通过下标索引访问内部数据。支持选代和切片的读操作。
  • 元组是不可变的数据类型。不能添加、删除和更新元组内的数据。
  • 内部数据统称为元素,元素的值可以重复,可以为任意类型的数据,如数字、字符串、列表、元组、字典和集合等。
  • 列表的字面值:使用小括号包含所有元素,元素之间使用逗号分隔。

元组与列表的区別:

  • 元组字面值使用小括号表示,而列表字面值使用中括号表示。
  • 与列表相比,元组不能增加元素,没有append()和 extend()方法;也不能删除元素,没有remove()和 pop()方法。
  • 列表不能作为字典的键、集合的元素,而元组可以作为哈希值使用。

元组的优点:

  • 元组比列表操作速度快。
  • 如果定义一个常量集,并且仅用于读取操作,建议优先选用元组结构。如果对一组数据进行 “写保护”,建议使用元组,而不是列表。如果必须改变这些值,则需要执行从元组到列表的转换。

相互转换

  • 使用内置的 tuple()函数可以将一个列表转换为元组。
  • 使用内置的 list()函数可以将一个元组转换为列表。

构造元组

以小括号作为起始和终止标识符,其中包含0个或多个元素,元素之间通过逗号分隔,元组字面值的语法格式如下:

(元素1,元素2,元素3,…,元素n)
t1 = () # 空元组
t2 = (1,2,3) 
t3 = 1,2,3 # 小括号不是必须的
t4 ="a",1,1,[1,2,3] # 定义不同类型的元组

使用tuple()函数可以将列表、range 对象、字符串或者其他类型的可迭代数据转换为元组。

t1 = tuple((1,2,3)) # 元组转列表
t2 = tuple([1,2,3]) # 列表转元组

应用元组

格式化输出

name = 'zhangsan'
gender = 'male'
tup = (name,gender)
print('name:%s,age:%s'%(name,gender)) # 输出 name:zhangsan , age:male
print('name:%s,age:%s'%tup) # 输出 name:zhangsan, age:male

多重赋值

a = 1
b = 2
a,b = b,a # 元组b,a解包
print(a) # 输出为2
print(b) # 输出1

数据保护

元组只能读取,不能写入,如果将列表转换为元组,可以保护数据不被随意改动。

name list = ["zhangsan", "lisi"', "wangwu"]
name_tuple = tuple(name_list)
print(name tuple) # 输出 (zhangsan, lisi, wangwu)
name list = list(name tuple)
print(name list) # 输出 [zhangsan, list, wangwu]

数据切片

tup= (3,4,5,6,7,9,11,13,15,17)
print(tup[::]) # 返回包含所有元素的新元组
print(tup[::-1) # 逆序的所有元素:(17,15,13,11,9,7,6,5,4,3)
print(tup[3::]) # 从下标3开始的所有元素:(6,7,9,11,13,15,17)
print(tup[3:6]) #  输出 (6,7,9)
print(tup[100:]) # 空元组 ()
print(tup[100]) # 抛出异常

相关文章
|
9天前
|
机器学习/深度学习 调度 Python
SOFTS: 时间序列预测的最新模型以及Python使用示例
这是2024年4月《SOFTS: Efficient Multivariate Time Series Forecasting with Series-Core Fusion》中提出的新模型,采用集中策略来学习不同序列之间的交互,从而在多变量预测任务中获得最先进的性能。
32 4
|
5天前
|
Python
在Python中,`range()`函数生成一个整数序列,用于循环迭代。
【6月更文挑战第19天】`Python`的`range()`函数生成整数序列,用于迭代。它接受`start`(默认0)、`stop`(不包含,右开)和`step`(默认1)参数。在`for`循环中,`range(5)`会输出0到4。若要包含结束值,需将`stop`设为`end+1`,如`range(1, 6)`将输出1到5。
18 1
|
9天前
|
存储 索引 Python
【Python列表解锁】:掌握序列精髓,驾驭动态数据集合
【Python列表解锁】:掌握序列精髓,驾驭动态数据集合
|
9天前
|
存储 索引 Python
Python零基础入门-5 数据结构(列表和元组
Python零基础入门-5 数据结构(列表和元组
|
19天前
|
存储 数据安全/隐私保护 索引
10.Python【序列】- 字符串(上)
10.Python【序列】- 字符串
31 3
|
19天前
|
运维 索引 Python
9.Python【非序列】- 集合
9.Python【非序列】- 集合
22 2
|
19天前
|
索引 Python
8.Python【非序列】- 字典
8.Python【非序列】- 字典
14 2
|
19天前
|
机器学习/深度学习 自然语言处理 TensorFlow
|
9天前
|
索引 Python 容器
【Python核心数据结构探秘】:元组与字典的完美协奏曲
【Python核心数据结构探秘】:元组与字典的完美协奏曲
|
11天前
|
vr&ar 索引 Python
Python基础教程(第3版)中文版 第二章列 表和元组(笔记)
Python基础教程(第3版)中文版 第二章列 表和元组(笔记)