python 中的元组
本文主要讲解了python中元组的使用
本文为自学B站上鱼C的python课程随手做的笔记。
如有问题,欢迎大家批评指正
原视频链接:https://www.bilibili.com/video/BV1c4411e77t?p=8
元组
元组可以像列表一样同时容纳多种类型的对象,又有像字符串一样不可变的特性。
1. 生成
语法,与列表一样,只是[] 改成 ()
元组:
tuple = (x,z,y,e,w)
在不引起歧义的情况下,python允许省略掉元组的括弧:
tuple = x,z,y,e,w #只用逗号隔开
# 但为实际编程方便,尽量还是都带上括弧。
列表:
list = [x,z,y,e,w]
NB:
(1)如何生成只有一个元素的元组:
(2) 元组就是固若金汤完全不可变的嘛?不是,当元组里面的元素指向可以变的列表,那么我们依然可以修改列表的内容。
2. 索引与切片
元组可以像列表一样通过下标索引获取元素。
元组也支持切片操作,用法和列表是一样的。因为切片操作的含义是将目标对象中的元素以某种特定的组合导出,而非修改对象本身。
3. 元组的操作
原本列表里的增、删、改、查的函数,在元组这里只有查可以继续使用。
tuple.count(x)
返回x在元组中的数量
tuple.index(x)
返回x在元组中的下标
元组的拼接(+)和重复(*)
拼接和重复在元组里可以正常使用
嵌套 和 列表推导式(不存在元组推导式)
元组也可以支持嵌套
不存在元组推导式子,仿照列表推导式强加在元组上只会生成迭代器:
打包与解包
这个过程不仅适用于元组,也适用于所有的序列(元组,字符串,列表)
过程与实例:
把多个元素合起来,生成一个元组的过程就叫打包。
这里整数123,字符串“abc”,和浮点数3.6 被打包成一个元组
那么对应的,将他们一次性赋值给3个变量名的行为就称之为解包:
这也适用于列表和字符串:
NB:(1)但是无论哪种打包解包,都需要注意赋值号左边的变量名数量必须和右边的序列的元素数量一致,否则报错。
(2)其实python的多重赋值,比如 x, y = 10, 20
,其实就是先讲10,20用元组进行打包,然后在将其解包而实现的。