Python修改元组中的元素方法有哪些
2023-03-31 10:34:15 时间
上节课也介绍过,元组是不可变的数据类型,所以我们没有办法对他的内部元素进行诸如修改,删除和增加操作,但是语言就是这么神奇,不可以对元组本身操作,还可以把元组操作之后的结果重新存储成一个新的元组,这样不就能丰富元组的操作了吗。方法是完全可行的,但是多少有点局限性,下面我们就来尝试操作一下。
一、尝试修改元组
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)
返回结果:
('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的元素后出现类型错误,说明元组内部元素不能修改。
二、尝试删除元组和元组元素
首先我们来删除整个元组
tup = ('python视频教程', "http://www.wakey.com.cn/")
print(tup)
del tup
print(tup)
返回结果:
NameError: name 'tup' is not defined
说明元组是可以删除的。
再来删除元组中的元素试试。
tup = ('python视频教程', "http://www.wakey.com.cn/")
print(tup)
del tup
print(tup)
del tup[1]
print(tup)
返回结果:
TypeError: 'tuple' object doesn't support item deletion
可以看出元组中元素不能删除,从而侧面证明元组是不可变的数据类型。
三、元组拼接
既然元组中元素不可变,那么我们把两个元组进行拼接试试返回的是不是一个新元组。
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)
返回结果:
('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)
从返回结果可以看出来,拼接后确实返回一个元组,但是打印原来的元组还是没有变化,说明返回的元组是一个新元组。
四、查找元组元素
和列表类似,我们可以通过下标来查找元素
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的值
返回结果:
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或者是任何编程语言都不是一口吃个大胖子的,都是经验的慢慢积累总结,代码敲起来吧!
相关文章
- 功能安全机制:内存分区与实现
- 揭秘字节跳动解决ClickHouse复杂查询问题的技术实践
- 研发效能提升利器:五个AI编程助手
- 都2022年了,Python继续霸榜,SQL写得溜,面试或能加分
- 编程语言大对决!Ruby和Python谁更可读?
- 《基于Python鸿蒙开发板外设控制》直播图文及答疑
- 手把手教你安装MINIGUI编程环境 (MINIGUI版本3.2.0)
- Chrome 94 新 API 引争议,Mozilla 和苹果联合反对
- 如何在Ubuntu 20.04上创建Python虚拟环境?
- Ubuntu 20.04 设置 Python 项目环境的正确姿势
- 用 Python 帮小伙伴找到头上一片绿的证据!
- 为什么在 Windows 下用 Ctrl+Z 退出 Python 而 Linux 下用 Ctrl+D 呢?
- 进入内核态究竟是什么意思?
- 事实证明:要想获得Windows 10 管理员权限,只需插入“雷蛇鼠标”即可
- Windows 10电脑怎么合并不相邻磁盘?
- 聊聊 top 命令中的 CPU 使用率
- 微软:严格执行Windows 11配置要求 不合格拒绝升级
- 聊一聊脚本执行方式,你学会了吗?
- 一日一技:Linux 中,没有 Zip命令,怎么生成 Zip 文件?
- API网关才是大势所趋?SpringCloud Gateway保姆级入门教程