Python元组

基本介绍

1、元组(tuple)可以存放多个不同类型数据,元组是不可变序列

tuple 不可变是指当你创建了 tuple 时候,它就不能改变了,也就是说它也没有 append(),insert()这样的方法但它也有获取某个索引值的方法,但是不能重新赋值

2、元组也是一种数据类型

3、创建一个元组,只要把逗号分隔的不同的数据项,使用圆括号括起来即可

python 复制代码
##元组的定义
'''
1.定义了一个元组,名字为tuple_a,值为(100,200,300,400,500)
2.100 就是其中的一个数据元素
'''
tuple_a=(100,200,300,400,500)
tupie_b=('red', 'green', 'blue', 'yellow', 'white', 'black')

#输出元组数据
print(f"元组的内容是{tuple_a} 类型是:{type(tuple_a)}")
print(f"元组的内容是{tuple_b} 类型是:{type(tuple_b)}")

元组的基本使用

元祖名 [索引]

元组的使用

python 复制代码
tuple_color =('red', 'green', 'blue', 'yellow', 'white', 'black')

ptint(f"touple_color元组的第1个元素为:, touple_color[0]")

元组的遍历

什么是元组的遍历,简单的说,就是将元组的每个元素依次取出,进行处理的操作,就是遍历 / 迭代。

python 复制代码
tuple_color =('red', 'green', 'blue', 'yellow', 'white', 'black')

#实例:使用while循环,对列表进行遍历输出tuple_while.py
# while 遍历元组
tuple color = ('red', 'green', 'blue', 'yellow', 'white', 'black')
index = 0
while index < len(tuple_color)
    print(f"第{index+=1}的元素的值:, {tuple_color[index]}")
    index += 1


#实例:使用for循环,对列表进行遍历输出 tuple_for.py
for ele in tuple_color:
    print(f"元素是:{ele}")

元组的注意事项和细节

内置类型 --- Python 3.11.11 文档

1、如果我们需要一个空元组,可以通过(),或者 tuple()方式来定义

python 复制代码
#1.如果我们需要一个空元组,可以通过()或者tuple()方式来定义
tuple_a =()
tuple_b = tuple()
print(f"tuple_a 内容是{tuple_a} 类型是{type(tuple_a)}")print(f"tuple_b 内容是{tuple_b} 类型是{type(tuple_b)}")

2、元组的元素可以有多个, 而且数据类型没有限制(甚至可以嵌套元组),允许有重复元素,并且是有序的

python 复制代码
#2、元组的数据项可以有多个,而且数据类型没有限制
tuple_c =(100,"jack",4.5,True, "jack")
print(tuple_c)

#嵌套元组
tuple_d =(100,"tom",("天龙八部","笑傲江湖",300))
print("tuple_d=", tuple_d)

3、元组的索引 / 下标是从0开始的

4、元组索引必须在指定范围内使用,否则报:IndexError: tuple index out ofrange,比如 tuple_d=(1,2.1,"韩顺平教育") 有效下标为 0-2

5、元组是不可变序列(要注意其使用特点)

python 复制代码
#元组的元素是不能修改,会报错 TypeError: "tuple'object does not support item assignment

tuple e=(1,2.1,'韩顺平教育')
tuple_e[2]='python' #不能修改

6、可以修改元组内 list 的内容(包括 修改、增加、删除等)

python 复制代码
#6、可以修改元组内 list的内容(包括 修改、增加、删除等)

tuple_f =(1,2.1,'韩顺平教育',["jack","tom","mary" ] #访问元组中list及其元素
print(tuple_f[3])
print(tuple_f[3][0])

# 修改
tuple_f[3][0]= "HSP"
print(f"tuple_f 内容是 {tuple_f}")

# 删除
del tuple_f[3][0]
print(f"tuple_f 内容是 {tuple_f}")

# 增加
tuple_f[3].append("smith")
print(f"tuple_f 内容是 {tuple_f}")

7、索引也可以从尾部开始,最后个元素的索引为-1往前一位为-2,以此类推

8、定义只有一个元素的元组需要带上逗号,否则就不是元组类型

python 复制代码
# 8、定义只有一个元素的元组,需要带上逗号
tuple_h =(100,)
print(f"tuple_h的类型是{type(tuple_h)}")

9、既然有列表,为什么还要有元组?

(1)在项目中,尤其是多线程环境中,有经验的程序员会考虑使用不变对象(一方面因为对象状态不能修改,所以可以避免由此引起的不必要的程序错误;另一方面一个不变对象自动就是线程安全的,这样就可以省掉处理同步化的开销。可以方便的被共享访问)。所以,如果不需要对元素进行添加、删除、修改的情况下,可以考虑使用元组

(2)元组在创建时间和占用的空间上面都优于列表

(3)元组能够对不需要修改的数据写保护

元组的常用操作

相关推荐
小王努力学编程7 分钟前
高并发内存池(三):TLS无锁访问以及Central Cache结构设计
jvm·数据结构·c++·学习
Python猫14 分钟前
付费专栏·Python潮流周刊电子书合集(epub、pdf、markdown)下载
python·计算机·pdf·电子书·资料
q5673152317 分钟前
Go语言多线程爬虫与代理IP反爬
开发语言·爬虫·tcp/ip·golang
Chandler2419 分钟前
Go语言即时通讯系统 开发日志day1
开发语言·后端·golang
hnlucky31 分钟前
通俗易懂版知识点:Keepalived + LVS + Web + NFS 高可用集群到底是干什么的?
linux·前端·学习·github·web·可用性测试·lvs
scdifsn41 分钟前
动手学深度学习12.4.硬件-笔记&练习(PyTorch)
pytorch·笔记·深度学习·缓存·内存·硬盘·深度学习硬件
北温凉43 分钟前
【学习笔记】机器学习(Machine Learning) | 第六章(2)| 过拟合问题
笔记·机器学习
强化学习与机器人控制仿真1 小时前
openpi 入门教程
开发语言·人工智能·python·深度学习·神经网络·机器人·自动驾驶
明月看潮生1 小时前
青少年编程与数学 02-019 Rust 编程基础 08课题、字面量、运算符和表达式
开发语言·青少年编程·rust·编程与数学
lwewan1 小时前
26考研——中央处理器_异常和中断机制(5)
笔记·考研