Python数据容器——元组(tuple)

1、元组与列表的不同点

列表是可以修改的。如果想要传递的信息,不被算改,列表就不合适了。

元组同列表一样,都是可以封装多个、不同类型的元素在内。
但最大的不同点在于:元组一旦定义完成,就不可修改
所以,当我们需要在程序内封装数据,又不希望封装的数据被算改,那么元组就非常合适了。

2、定义元组

定义元组是使用小括号,(定义列表使用[])

定义元组:变量名称 = (元素1, 元素2, ……)

定义空元组:变量名称 =()      或     变量名称= tuple()

元组里只有一个数据:变量名称 = (元素1,)#这个数据的后面要加逗号

定义多维元组:变量名称 = ((1, 2, 3),  (4, 5, 6)) 

数据容器可变性语法表示使用场景迭代和索引 性能
列表(list)可变(可以添加、删除或修改其中的元素)使用方括号 [] 来表示,元素之间使用逗号分隔。
例如:my_list = [1, 2, 3]
通常,列表用于存储可变的数据集合,例如保存多个相同类型的数据。都支持迭代和索引操作。
例如my_list[0] 
​​​​​​​列表还提供了一些方便的方法,如append() 和pop()来添加和删除元素。
由于元组是不可变的,相比之下,列表在执行添加、删除和修改等操作时需要更多的时间和内存。因此,如果数据不需要更改,使用元组可能会更高效。
元组(tuple)不可变(一旦创建就不能改变其内容)使用圆括号 () 来表示,元素之间同样使用逗号分隔。
例如:my_tuple = (1, 2, 3)
元组则通常用于存储不可变的数据集合,例如表示一个点的坐标。都支持迭代和索引操作。
例如:my_tuple[1]

3、元组的操作

方法作用
index()查找某个数据,如果数据存在返回对应的下标,否别报错
count()统计某个数据在当前元组出现的次数
len(元组名)统计元组内的元素个数

还可以遍历元组


t1 = (111, "Hello", "World", "World", "Python")
# index查找
index1 = t1.index("Hello")
index2 = t1.index("World")
print(f"元素Hello在元组中的位置是: {index1}")   # 输出:元素Hello在元组中的位置是: 1
print(f"元素World在元组中的位置是: {index2}")     # 输出:元素World在元组中的位置是: 2(所以只会输出第一个遇到的下标)

# count统计方法
num = t1.count("World")
print(f"元组t1中一共有{num}个World")   # 输出:元组t1中一共有2个World

# len函数统计元组元素数据
num = len(t1)
print(f"t1的长度是{num}")   # 输出:t1的长度是5

# 元组的遍历:while
print("元组的元素有", end=":")
index = 0
while index < len(t1):
    print(t1[index], end=",")   # 输出结果:元组的元素有:111,Hello,World,World,Python,
    index += 1

print()
# 元组的遍历:for
print("元组的元素有", end=":")
for element in t1:
    print(element, end=",")   # 输出结果:元组的元素有:111,Hello,World,World,Python,
    

其他的都不可以使用,因为元组不可修改。

例如:在上述基础上,修改元组的元素值时,会报错:

t1[0] = 222  
# 报错:TypeError: 'tuple' object does not support item assignment

4、元组(tuple)内嵌套列表(list)

在元组内嵌套列表时,嵌套的列表仍然保持其自身的性质,而不是按照元组的性质来。元组是不可变的有序序列,使用圆括号 `()` 表示,而列表是可变的有序序列,使用方括号 `[]` 表示。当元组内包含列表时,列表保持其可变性,即可以对列表的元素进行添加、删除和修改等操作。可以修改元组内的list的内容(修改元素、增加、刷除、反转等):

t2 = (1, 2, ['Hello', 'World'])
t2[2][1] = 'Python'
print(t2)   # 输出:(1, 2, ['Hello', 'Python'])

4、练习案例

题目要求:定义一个元组,内容是:('周杰轮',11,[football,'music']),记录的是一个学生的信息(姓名、年龄、爱好),请通过元组的功能(方法),对其进行:
1.查询其年龄所在的下标位置。
2.查询学生的姓名。
3.副除学生爱好中的football
4.增加爱好:coding到爱好list内

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wmpreturn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值