4.4 元组类型

微视频

与列表相比,元组对象不能修改,同时元组使用小括号、列表使用中括号。元组创建很简单,只需要在括号中添加元素并使用逗号隔开即可。

4.4.1 认识元组

元组(Tuple)对象属于序数对象,是一群有序对象的集合,并且可以使用数字来作索引。元组对象与列表对象类似,差别在于元组对象不可以新增、修改与删除。

要创建一个元组对象,可以使用小括号来包含其元素。其语法如下:

    variable = (element1, element2,  ...)

下面创建一个元组对象,含有4个元素:1、2、3和4。

    >>>a=(1,2,3,4)
    >>>a           #查看元组的元素
    (1, 2, 3, 4)

列表对象a共有4个元素,可以使用a[0]来返回第1个元素、s[1]来返回第2个元素,以此类推。如果索引值超出范围,Python就会抛出一个IndexError异常。

大牛提醒

列表赋值时可以省略小括号(),直接将元素列出。例如:

    c = 1,2,3,4  #省略小括号

【例4.3】使用for循环列出班级中的学生(源代码\ch04\4.3.py)。

这里首先定义一个包含6个元素的元组,内容为班级中学生的名字,然后使用for循环将每个元组的值输出,并且在后面加上“同学”二字。

    sname=("张明","张敏","李明","刘辉","王磊","赵东")        #定义元组
    print ("下面输出班级中的所有学生\n")
    for name in sname:                                       #遍历元组
       print (name+"同学",end=" ")

程序运行结果如图4-3所示。

图4-3 例4.3的程序运行结果

4.4.2 元组的常用操作

下面讲解元组的常用操作方法。

1.创建只有一个元素的元组

如果创建的元组对象只有一个元素,就必须在元素之后加上逗号,否则Python会认为此元素是要设置给变量的值。

    >>>x = ("二十年来万事同",)  #创建只有一个元素的元组
    >>>x
    ('二十年来万事同',)
    >>>y = ("二十年来万事同")   #为变量y 赋值,输出结果不再是元组
    >>>y
    '二十年来万事同'
2.元组的对象值不能修改

在元组中,不可以修改元组对象内的元素值,否则会提示错误。例如:

    >>>x = (1,2,3,4)
    #以下修改元组元素操作是非法的
    >>>x[1] = 5
    >>> x[1] = 5
    Traceback (most recent call last):
      File "<pyshell#1>", line 1, in <module>
        x[1] = 5
    TypeError: 'tuple' object does not support item assignment
3.删除元组内的对象

虽然元组内的元素值不能修改和直接删除,但是可以通过重新赋值的方式,间接达到删除元组对象的效果。注意,这里不是真正意义上删除元素,因为元组对象是不可变的。

例如,在下面的例子中删除元组中的a[3]:

    >>>a = ("二十年来万事同",100,200,300)
    >>>a = a[0],a[1],a[2]
    >>>a
    ('二十年来万事同', 100, 200)
4.删除整个元组

使用del语句可以删除整个元组。例如:

    >>>a = (1,2,3,4)                     #定义新元组a
    >>>a                                 #输出元组a
    >>>del a                             #删除元组a
    >>>a                                 #再次输出元组a 时将报错
    Traceback (most recent call last):
      File "<pyshell#3>", line 1, in <module>
        a
    NameError: name 'a' is not defined

从报错信息可以看出,元组已经被删除,再次访问该元组时会提示错误信息。

4.4.3 元组的内置函数

元组的内置函数包括len()、max()、min()和sum()。下面分别讲述这4个内置函数的使用方法。

1.len()函数

len()函数返回元组的长度。例如:

    >>>a = (1,2,3,4,5,6)
    >>>len(a)
    6
2.max()函数

max()函数返回元组或列表元素中的最大值。例如:

    >>>a=(1,2,3,4,5,6)
    >>>max(a)
    6
    >>>b=['a', 'c', 'd', 'e', 'f', 'g']
    >>>max(b)
    'g'

元组中的元素数据类型必须一致才能使用max()函数,否则会出错。

3.min()函数

min()函数返回元组或列表元素中的最小值。例如:

    >>>a=(1,2,3,4,5,6)
    >>>min(a)
    1
    >>>b=['a', 'c', 'd', 'e', 'f']
    >>>min(b)
    'a'

元组中的元素数据类型必须一致才能使用min()函数,否则会出错。

4.sum()函数

sum()函数返回元组中所有元素的和。例如:

    >>>a=(1,2,3,4,5,6,7,8)
    >>>sum(a)
    36