目录
一、创建和访问一个元组
创建列表用的是中括号。创建元组大部分使用小括号。元组与列表有很多相似的地方
元组不可以直接进行更新修改,试图修改元素时,会报错
逗号是决定元组类型的关键,小括号只是起到补充的作用。就算有小括号,有可能是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 |
|
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__()方法