鱼C论坛

 找回密码
 立即注册
查看: 11023|回复: 46

[技术交流] 013讲:元组,戴上了枷锁的列表

[复制链接]
发表于 2015-8-30 22:42:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 醉酒青牛 于 2016-5-21 22:32 编辑

本期内容导读:
        这一期我们归纳一下鱼神第十三讲“元组:戴上了枷锁的列表”。这一期里面鱼神主要是通过与列表进行对比来介绍元组独有的用法和特点,主要牵涉到元组的创建和访问以及更新和删除元组等有关内容。下面我们就来详细介绍一下各个知识点吧~~~~~~

1. 创建和访问元组
        元组一旦建立,元组内的元素不允许修改和删除,这是元组与列表最大的区别。
1.1 元组的创建:
        大多数时候,元组的标示是一个小括号(),例如:
  1. empty = ()                                           #定义了一个空元组
  2. tuple1 = (1,7,4)                                   #定义了一个纯数字的元组
  3. tuple2 = (2,'小甲鱼','醉酒青牛',5)        #定义了一个具有数字和字符串的混合元组
复制代码

        然而,当元组中仅有一个元素时,需要将元素后面加上逗号,例如:
  1. tuple3 = (1,)                                        #定义了一个只包含数字1的元组,1后面必须加上逗号才表示元组
复制代码

        甚至,不需要括号,仅仅有逗号就行,例如:
  1. tuple4 = 1,
复制代码


1.2 元组的访问:
        元组的访问形式与列表一样都是   元组名[下标值],例如:
  1. tuple4 = (1,5,9)
复制代码

则tuple4[1]的值为5,但不允许对元组的元素进行修改,例如:
tuple4[1] = 4  将会报语法错误。
        另外,和列表一样,可以对元组使用拼接操作符'+',重复操作符'*',逻辑操作符,关系操作符和成员操作符等。

2. 更新和删除元组
        虽然元组本身不允许修改和删除,但是和字符串一样,我们可以对原元组的元素进行操作并生成一个新的元组,例如:
  1. tuple5 = ('小甲鱼','黑夜','小布丁')                             #定义一个纯字符串的元组
  2. tuple5 = tuple5[:2] +("醉酒青牛",)+ tuple5[2:]        #通过元组分片形式和拼接操作,生成了在原元组的第一个位置上插入'醉酒青牛'元素的新元组
复制代码

则tuple5现在的值变为 ('小甲鱼','醉酒青牛','黑夜','小布丁')   ,这样就实现了tuple5元组的更新,其实相当于重新生成了一个新的元组,并将其复制给了tuple5,原先的元组还存在,只是已经不再叫tuple5,它会被Python内存垃圾回收。
        可以通过del语句直接删除一个元组,但是不允许利用del删除元组的一个元素,例如:
  1. tuple6 = 1,3
  2. del tuple6
复制代码

        当然也可以采取变通的方法去掉元组的一个元素,例如:
  1. tuple7 = ('小甲鱼','醉酒青牛','黑夜','小布丁')                           #定义一个纯字符串的元组
  2. tuple7 = tuple7[:1] + tuple7[2:]                         #通过元组分片形式和拼接操作,生成了去掉了'醉酒青牛'元素的新元组并赋值给tuple7
复制代码

则tuple7现在的值变为 ('小甲鱼','黑夜','小布丁') ,原先的元组还存在,只是已经不再叫tuple7,它会被Python内存垃圾回收。


       

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +5 收起 理由
~风介~ + 5 + 5 + 5 感谢楼主无私奉献!

查看全部评分

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-8-30 23:34:34 | 显示全部楼层
真有毅力!坚持下去一定你自己会受益匪浅的!
高能预警:对象和类那一部分会比较难理解哦~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-30 23:50:23 | 显示全部楼层
~风介~ 发表于 2015-8-30 23:34
真有毅力!坚持下去一定你自己会受益匪浅的!
高能预警:对象和类那一部分会比较难理解哦~

感谢版主大大鼓励,类和对象理解起来确实非常抽象,尤其是魔法方法那一部分,就算勉强有点懂了也只能是那种“只可意会,无法言传”的赶脚,不过我想试试
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-8-31 00:02:03 | 显示全部楼层
醉酒青牛 发表于 2015-8-30 23:50
感谢版主大大鼓励,类和对象理解起来确实非常抽象,尤其是魔法方法那一部分,就算勉强有点懂了也只能是那 ...

加油吧!借花献佛,送一首诗给你哦!

醉笑紅塵一夢中,
酒醉東風千枝上。
青春夢憐春色里,
牛秋風老此山行。
                            —— 百度机器人
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-31 09:12:39 | 显示全部楼层
~风介~ 发表于 2015-8-31 00:02
加油吧!借花献佛,送一首诗给你哦!

醉笑紅塵一夢中,


不看承诺,看行动吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-9-5 15:40:00 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-9-5 21:58:15 | 显示全部楼层

谢谢支持,以后多交流
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-10-13 11:19:12 | 显示全部楼层
tuple7 = ('小甲鱼','醉酒青牛','黑夜','小布丁')                           #定义一个纯字符串的元组
tuple7 = tuple7[:1] + tuple7[:2]                         #通过元组分片形式和拼接操作,生成了去掉了'醉酒青牛'元素的新元组并赋值给tuple7
这里的代码写错了,因该是笔误

tuple7 = tuple7[:1]+tuple[2:]

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
醉酒青牛 + 1 + 1 谢谢loco_v鱼油,已修改,感谢及时指正!

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2015-10-13 13:51:35 | 显示全部楼层
loco_v 发表于 2015-10-13 11:19
tuple7 = ('小甲鱼','醉酒青牛','黑夜','小布丁')                           #定义一个纯字符串的元组
tu ...

非常感谢您的支持哈,一起努力,早日入门吧。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-10-13 19:01:47 | 显示全部楼层
有空就支持一下的了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-10-13 19:05:50 | 显示全部楼层
qqqq79852852 发表于 2015-10-13 19:01
有空就支持一下的了

谢谢,欢迎能提出自己的意见和想法。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-10-29 19:15:53 | 显示全部楼层
感谢楼主无私奉献!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-10-30 23:02:37 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-11-15 10:15:51 | 显示全部楼层
2. 更新和删除元组
        虽然元组本身不允许修改和删除,但是和字符串一样,我们可以对原元组的元素进行修改并新生成一个新的元组存放这些修改后元素,例如:

    tuple5 = ('小甲鱼','黑夜','小布丁')                             #定义一个纯字符串的元组
    tuple5 = tuple5[:2] +("醉酒青牛",)+ tuple5[2:]        #通过元组分片形式和拼接操作,生成了在原元组的第一个位置上插入'醉酒青牛'元素的新元组

复制代码

则tuple5现在的值变为 ('小甲鱼','醉酒青牛','黑夜','小布丁')

这里有点小问题,tuple5
('小甲鱼', '黑夜', '醉酒青牛', '小布丁'),醉酒青牛是第三个位置。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-17 14:49:17 | 显示全部楼层
学习一下:smile
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-20 17:54:26 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-11-24 17:30:29 | 显示全部楼层
更新元组 如果中间要加入某个元素 而且还要显示之前元组的所有的话 那么就需要前后都要加 要不然只有前面的元组和新的元素!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-26 21:27:16 | 显示全部楼层
继续加油,作为初学者看你的总结复习感觉效率很高
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-27 12:57:29 | 显示全部楼层
大力支持
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-16 17:19:37 | 显示全部楼层
好难理解:
tuple1=()
tuple1=(1,)
tuple1=1,
tuple 不能修改元素
必须切片重组
即tuple1=tuple1[:2]+tuple1[5:]
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-4-2 00:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表