上集回顾:
- for循环语句求和
- for循环语句乘法口诀表
- continue语句
- break语句和else语句
学习完for语句,就算是学完了Python基本的流程控制语句(if、while和for)。流程控制语句是为了控制代码逻辑的,但每一个逻辑里面最终还是要处理数据的,所以后面还要继续学习Python的基本数据类型。前面已经小P已经学习了列表和字符串,他们之间有很多共性,例如索引和切片操作。随着 Python 语言的发展,其他的序列类型也被加入其中。本节来学习另一种标准序列类型:元组(tuple)。
一、元组定义
元组用一对小括号内多个用逗号隔开的值表示,tuple和list非常类似,但是tuple一旦初始化就不能修改。例如:
>>> t = ("星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日")
>>> t
('星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日')
>>> t[0] #像列表list一样索引
'星期一'
>>> t[0] = '星期日' #不能修改,会出错
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
不可变的tuple有什么意义?因为tuple不可变,所以代码更安全,可以防止数据被意外改动而发生问题。如果可能,能用tuple代替list就尽量用tuple。
二、元组注意事项
- 由于元组(tuple)不能修改,所以在定义的时候,tuple的元素就必须被确定下来。
- 定义空元组:
>>> t = ()
>>> t
()
- 定义一个单元素的元组不能像这样:t = (1)。因为括号
()
既可以表示tuple,又可以表示数学公式中的小括号,而这种情况Python规定按小括号处理,所以这样定义的只是单个数值1
。而定义单元素元组,分隔符,
就不能省略了:
>>> t = (1) #不是元组
>>> t
1
>>> t = (1,) #单元素元组
>>> t
(1,)
二、元组妙用
定义简单元组时,小括号可以省略,例如:
>>> t = 1, 2, 3
>>> t
(1, 2, 3)
这其实是一个元组打包的操作,1、2和3被一起打包进了元组。逆操作也可以:
>>> t = 1, 2, 3
>>> x, y, z = t
>>> x
1
>>> y
2
>>> z
3
称之为 序列解包 也是妥妥的,适用于右侧的任何序列。序列解包时,左侧变量与右侧序列元素的数量应相等。
注意,多重赋值其实只是元组打包和序列解包的组合:
>>> x, y, z = 1, 2, 3
>>> x
1
>>> y
2
>>> z
3
敲重点:有了这种操作,函数就可以返回多个值了。比如平面点坐标由x和y两个坐标值构成,如果想返回一个点坐标就可以通过tuple实现了。
>>> def getPoint() :
... x = 10
... y = 20
... return x, y
...
>>> px, py = getPoint()
>>> px
10
>>> py
20
本集总结:
- 元组(tuple)定义
- 元组注意事项
- 元组妙用
下集见
网友评论