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)元组能够对不需要修改的数据写保护

元组的常用操作

相关推荐
毕设源码-邱学长2 小时前
【开题答辩全过程】以 基于Java的学校住宿管理系统的设计与实现为例,包含答辩的问题和答案
java·开发语言
rookieﻬ°2 小时前
PHP框架漏洞
开发语言·php
淮北4942 小时前
vim学习进阶
学习·编辑器·vim
猿界零零七3 小时前
pip install mxnet 报错解决方案
python·pip·mxnet
炸膛坦客3 小时前
单片机/C/C++八股:(二十)指针常量和常量指针
c语言·开发语言·c++
智者知已应修善业3 小时前
【proteus中lm339电压滞回比较器达到三角波转换成方波】2023-4-13
驱动开发·经验分享·笔记·硬件架构·proteus·硬件工程
兑生3 小时前
【灵神题单·贪心】1481. 不同整数的最少数目 | 频率排序贪心 | Java
java·开发语言
551只玄猫3 小时前
新编大学德语1第三版笔记 第5课Essen und Trinken
笔记·学习笔记·德语·外语·德语a1·自学德语·新编大学德语
sayang_shao4 小时前
ARM架构运行模式学习笔记
arm开发·学习·架构
炸膛坦客4 小时前
单片机/C/C++八股:(十九)栈和堆的区别?
c语言·开发语言·c++