Python精通-Python元组操作

本文深入探讨Python中的元组数据类型,包括其定义、特性、与列表及字符串的区别,以及如何进行元组操作和与其他数据类型的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导语
  在介绍元组之前那,先来回顾一个变量赋值问题。对于字符串来说一旦被创建如果需要进行修改的时候就如同下图中展示的一样,需要新开辟空间对新的值进行存储。对于其他语言也是同样适用。
  元组作为Python中的又一个数据类型,接下来就来看看元组这种数据类型。

回顾

变量赋值问题

如果在实际操作中,出现如下的操作

v = 1
v = 2
print(v)

那么在内存中的操作又是什么样子呢?如图所示,在最终输出的结果是2
在这里插入图片描述
那么在实际的操作过程中如果出现如下的操作又会是什么样子呢

v = "test"
v1 = v.replace("t","o");
print(v)
print(v1)

v = "test"
v = v.replace("t","o");
print(v)

在这里插入图片描述

对于列表来说可以通过索引进行取值,当然任意的可迭代对象,都可以通过索引进行取值。那么字符串呢?在如下的代码中测试了这个场景

li = [11,22,33,454]
li[3] = 999;
print(li)


test = "nihui"
v = test[0]
print(v)
test[1] = "tes"
print(test)

会发现,并不是所有的可迭代对象都可以通过这样的方式进行赋值操作。同样也可以说字符串是不支持修改操作的。

元组

  在开始分享元组之前先来看一个小演示。在我们操作列表的时候会发现列表是有序的,也就是说使用print进行列表输出的时候每次执行结果都是一样的如下,如果中间出现一次不一样的时候就说明Python的列表是无序的。

li = [11,22,33,454]
print(li)
print(li)
print(li)
print(li)
print(li)
print(li)
print(li)
print(li)
print(li)
print(li)

在这里插入图片描述

列表是有序的,并且列表的元素是可以被修改的

  元组其实是与列表是类似的,其实是对于列表功能的封装。如下,从表现啊形式上来看,一个是用中括号一个是用括号。但是实际上还是有很多的不一样的地方。

# 列表
li = [11,22,33,44]
#元组
tu = (11,22,33,44)

  在Python中元组使用tuple进行表示,元组对于列表的封装基于两点,第一元组的元素是不可被修改,第二元组的元素是不能增加也不能删除。

定义一个元组
在定义元组的时候为了与方法进行区分,在最后元素结束的时候加入一个逗号,表示这个是一个元组

tu = (111,"test",(111,222),[(33,44)],True,33,44,)

元组取值

tu = (111,"test",(111,222),[(33,44)],True,33,44,)
#通过索引取值
v = tu[0]
#通过切片取值
v1 =tu[0:1]
print(v1)
print(v)

元组不能进行修改

元组可以被for循环

tu = (111,"test",(111,222),[(33,44)],True,33,44,)

for item in tu:
    print(item)

可迭代对象之间的转换

字符串转换为元组
tu = (111,"test",(111,222),[(33,44)],True,33,44,)
s = "test"
li = ["test",123,"nihui"]

v = tuple(s)
print(v)
列表转换为元组
tu = (111,"test",(111,222),[(33,44)],True,33,44,)
s = "test"
li = ["test",123,"nihui"]

v = tuple(li)
print(v)
元组转换为字符串
tu = (111,"test",(111,222),[(33,44)],True,33,44,)
s = "test"
li = ["test",123,"nihui"]

v = str(tu)
print(v)
元组转换为列表
tu = (111,"test",(111,222),[(33,44)],True,33,44,)
s = "test"
li = ["test",123,"nihui"]

v  = list(tu)
print(v)

  以上的操作可以证明,元组与列表和字符串一样都可以看做是一个可迭代对象。同样也可以看出来元组其实是有序的。

元组操作

  上面的内容中已经提到元组的一级元素是不能被修改的。所以对于元组的操作就比较少了!

def count(self, *args, **kwargs)

获取元组中指定元素的个数

tu = (111,"test",(111,222),[(33,44)],True,33,44,)

v = tu.count(True);
print(v)
def index(self, *args, **kwargs)

获取元组中指定元素的索引位置

tu = (111,"test",(111,222),[(33,44)],True,33,44,)

v = tu.index(True)
print(v)

总结

  如果在某些场景下,只是想使用某些值,但是不需要修改的时候,就可以使用元组。如果实在需要操作的时候,可以把一个元组先转换成一个列表,操作完成之后再做二次转换。

tu = (111,"test",(111,222),[(33,44)],True,33,44,)
li = list(tu)
li.append(55)
print(li)
tu = tuple(li)
print(tu)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

nihui123

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

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

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

打赏作者

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

抵扣说明:

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

余额充值