美文网首页Python养成记
12、Python元组(tuple)

12、Python元组(tuple)

作者: 魔方宫殿 | 来源:发表于2022-03-26 22:27 被阅读0次
Life is short, you need Python!

上集回顾:

  1. for循环语句求和
  2. for循环语句乘法口诀表
  3. continue语句
  4. 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。

二、元组注意事项

  1. 由于元组(tuple)不能修改,所以在定义的时候,tuple的元素就必须被确定下来。
  2. 定义空元组:
>>> t = ()
>>> t
()
  1. 定义一个单元素的元组不能像这样: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

本集总结:

  1. 元组(tuple)定义
  2. 元组注意事项
  3. 元组妙用

下集见

相关文章

网友评论

    本文标题:12、Python元组(tuple)

    本文链接:https://www.haomeiwen.com/subject/ocbsjrtx.html