课时13 元组:戴上了枷锁的列表

元组与列表详解
本文深入探讨了Python中元组与列表的区别与联系,讲解了元组的创建、访问、更新及删除方法,对比了元组与列表在不同场景下的适用性,并提供了实践性的课后题供读者巩固知识。

目录

一、创建和访问一个元组

二、更新和删除元组

三、元组相关的操作符

四、课后题


一、创建和访问一个元组

创建列表用的是中括号。创建元组大部分使用小括号。元组与列表有很多相似的地方

元组不可以直接进行更新修改,试图修改元素时,会报错

逗号是决定元组类型的关键,小括号只是起到补充的作用。就算有小括号,有可能是int类型;就算没有小括号,也可以是tuple类型

在元组中可以使用加号作为连接操作符,主要前后的数据类型要保持一致

二、更新和删除元组

我们这里讨论的是一个相对含蓄的做法(直接在同一个元组上更新是不可行的,除非你学习了后面的"魔法方法"章节)。回想一下以前怎么跟新字符串的,是通过拷贝现有的字符串片段构造一个新的字符串的方式来解决的,对元组也是使用同样的方法:

上面的代码需要在"小鸭""小猪"中间插入"小甲鱼",那么通过分片的方法让元组拆分为两部分,然后再使用连接操作符(+)合并成一个新元组,最后将原来的变量名temp指向连接好的新元组。不妨可以把这样的做法称为"狸猫换太子"。在这里就要注意了,逗号是必须的,小括号也是必须的!

我们可以用刚才讲的,间接的删除一个元素:

如果要删除整个元组,只要使用del语句即可显式地删除一个元组。其实在日常生活中,很少使用del去删除整个元组,因为Python的回收机制会在这个元组不再被使用到的时候自动删除。

三、元组相关的操作符

最后小结一下哪些操作符可以使用在元组上,拼接操作符和重复操作符刚刚演示过了,关系操作符、逻辑操作符和成员操作符in 和not in 也可以直接应用在元组上,这跟列表是一样的,大家实践一下,就明白了。

四、课后题

测试题:

0. 请用一句话描述什么是列表?再用一句话描述什么是元组?
1. 什么情况下你需要使用元组而不是列表?
2. 当元组和列表掉下水,你会救谁?
3. 请将下图左边列表的内置方法与右边的注释连线,并圈出元组可以使用的方法。

4. 创建一个元组,什么情况下逗号和小括号必须同时存在,缺一不可?
5. x, y, z = 1, 2, 3 请问x, y, z是元组吗?
6. 请写出以下情景中应该使用列表还是元组来保存数据:

1

2

3

4

5

6

1) 游戏中角色的属性:

2) 你的身份证信息:

3) 论坛的会员:

4) 团队合作开发程序,传递给一个你并不了解具体实现的函数的参数:

5) 航天火箭各个组件的具体配置参数:

6) NASA系统中记录已经发现的行星数据:

7. 上节课我们通过课后作业的形式学习到了“列表推导式”,那请问如果我把中括号改为小括号,会不会得到“元组推导式”呢?

答案:

0.列表:一个大仓库,你可以随时往里边添加和删除任何东西

元组:封闭的列表,一旦定义,就不可改变(不能添加、删除或修改)

1.当我们希望内容不被轻易改写的时候,我们使用元组(把权力关进牢笼)

当我们需要频繁修改数据,我们使用列表

2.如果是我,我会救列表,因为列表提供了比元组更丰富的内置方法,这相当大的提高了编程的灵活性。
回头来看下元组,元组固然安全,但元组一定创建就无法修改(除非通过新建一个元组来间接修改,但这就带来了消耗),而我们人是经常摇摆不定的,所以元组只有在特殊的情况才用到,平时还是列表用的多。

3.元组仅仅可以使用index(),count()

4.在拼接只有一个元素的时候

5.所有的多对象的,逗号分隔开的,没有明确用符号定义的这些集合moren

6.

1) 游戏中角色的属性:列表
  
2) 你的身份证信息:元组
  
3) 论坛的会员:列表
  
4) 团队合作开发程序,传递给一个你并不了解具体实现的函数的参数:元组
  
5) 航天火箭各个组件的具体配置参数:元组
  
6) NASA系统中记录已经发现的行星数据:列表

7.Python中没有元组推导式。但输入>>> tuple1 = (x**2 for x in range(10))不会报错,这是因为误打误撞得到了一个生成器

注意,Python3之后的next()方法改成了__next__()方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值