Python修改元组中的元素方法有哪些

2021-12-06 11:19:15 浏览数 (3)

上节课也介绍过,元组是不可变的数据类型,所以我们没有办法对他的内部元素进行诸如修改,删除和增加操作,但是语言就是这么神奇,不可以对元组本身操作,还可以把元组操作之后的结果重新存储成一个新的元组,这样不就能丰富元组的操作了吗。方法是完全可行的,但是多少有点局限性,下面我们就来尝试操作一下。

一、尝试修改元组

代码语言:python代码运行次数:0复制
tup1 = ('p', 'y', 't', 'h', 'o', 'n')
print(tup1)
print(id(tup1))
tup1 = (1, 2, 3, 4, 5, 6, 7, 8, 9)print(tup1)print(id(tup1)) 
# 和上面的元组不是同一个
tup1[1] = 100
print(tup1) 

返回结果:

代码语言:python代码运行次数:0复制
('p', 'y', 't', 'h', 'o', 'n')
31565184
(1, 2, 3, 4, 5, 6, 7, 8, 9)
31465360
TypeError: 'tuple' object does not support item assignment

从上面的结果我们可以看出,前两次赋值后出现的内存地址是不一样的,所以虽然都叫做tup1但是其实是两个不同的元组,而第三个我们直接修改下标为1的元素后出现类型错误,说明元组内部元素不能修改。


二、尝试删除元组和元组元素

首先我们来删除整个元组

代码语言:python代码运行次数:0复制
tup = ('python视频教程', "http://www.wakey.com.cn/")
print(tup)
del tup
print(tup)

返回结果:

代码语言:python代码运行次数:0复制
NameError: name 'tup' is not defined

说明元组是可以删除的。

再来删除元组中的元素试试。

代码语言:python代码运行次数:0复制
tup = ('python视频教程', "http://www.wakey.com.cn/")
print(tup)
del tup
print(tup)
del tup[1]
print(tup)

返回结果:

代码语言:python代码运行次数:0复制
TypeError: 'tuple' object doesn't support item deletion

可以看出元组中元素不能删除,从而侧面证明元组是不可变的数据类型。


三、元组拼接

既然元组中元素不可变,那么我们把两个元组进行拼接试试返回的是不是一个新元组。

代码语言:python代码运行次数:0复制
tup1 = ('p', 'y', 't', 'h', 'o', 'n')
tup2 = (1, 2, 3, 4, 5, 6, 7, 8, 9)
print(tup1   tup2)
print(tup1) # 原来的元组都不会发生变化,说明元组不可变print(tup2)
print(tup2 * 3)
print(tup2)

返回结果:

代码语言:python代码运行次数:0复制
('p', 'y', 't', 'h', 'o', 'n', 1, 2, 3, 4, 5, 6, 7, 8, 9)
('p', 'y', 't', 'h', 'o', 'n')
(1, 2, 3, 4, 5, 6, 7, 8, 9)
(1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9)
(1, 2, 3, 4, 5, 6, 7, 8, 9)

从返回结果可以看出来,拼接后确实返回一个元组,但是打印原来的元组还是没有变化,说明返回的元组是一个新元组。


四、查找元组元素

和列表类似,我们可以通过下标来查找元素

代码语言:python代码运行次数:0复制
tup1 = ('python', 'java', 'php', 'MySql', 'C  ', 'C', 'php', 'C#')
print(tup1[5]) # 查找第六个元素
print(tup1[-2]) # 查找倒数第二个元素
print(tup1[1:4]) # 查找第二到第五个元素
print(tup1[4:]) # 从第五个查找到最后一个
print(tup1[:4]) # 从第0个查找到第五个
print(tup1[1:6:2]) # 从第二个到第七个,每隔2个查询一次print(tup1[::-1]) # 翻转元组
print(tup1[5:2:-1]) # 5到2翻转元组,取不到2的值

返回结果:

代码语言:python代码运行次数:0复制
C
php
('java', 'php', 'MySql')
('C  ', 'C', 'php', 'C#')
('python', 'java', 'php', 'MySql')
('java', 'MySql', 'C')
('C#', 'php', 'C', 'C  ', 'MySql', 'php', 'java', 'python')
('C', 'C  ', 'MySql')

以上就是对python中元组元素的增删改查操作方法总结了,大家看完这篇文章后要自己多加尝试练习一下增加印象,不然这一秒看过下一秒就忘记了,学习python或者是任何编程语言都不是一口吃个大胖子的,都是经验的慢慢积累总结,代码敲起来吧!

0 人点赞