美文网首页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