Python轻松学:爬虫、游戏与架站
上QQ阅读APP看书,第一时间看更新

3.2 元组

元组和列表概念上其实是一样的,两者最大的区别是元组一旦创建就不能修改,而列表则可以修改。创建元组的语法很简单:如果用逗号分隔了一些值,就会自动创建元组。例如:

    >>> 1,2,3
(1,2,3)

输入“1,2,3”,回车后可以发现输出成了(1,2,3),而元组的定义也正是使用()小括号来完成的,即上面的代码自动创建了一个元组。

3.2.1 创建元组

元组创建使用小括号,列表使用方括号,这点不要弄混。下面来看一下元组的几种创建方式:

    >>> tup1 = ('zhangsan', 'lisi', 'wangwu', 'zhaoqi' )
    >>> tup2 = ('zhangsan', 'lisi', 2017, 1997)
>>> tup3 = 'zhangsan', 'lisi', 2017, 1997

上述代码中就是创建元组的三种方法,这里分别创建了三个元组tup1、tup2、tup3并进行了赋值,在后续的代码中就可以直接使用了。

3.2.2 访问元组

元组定义好之后,就可以进行基本操作了。这里首先介绍如何访问元组的元素。

元组中的元素也可以使用索引进行访问,索引从0开始。可以使用负数索引、切片操作,同列表一样,例如:

    >>> tup2 = ('zhangsan', 'lisi', 2017, 1997)
    >>> print(tup2[0])
    zhangsan
    >>> print(tup2[-2])
    2017
    >>> print(tup2[1:])
('lisi', 2017, 1997)

上述代码分别使用索引和切片进行元素访问。

3.2.3 修改元组

前面重点给大家提过醒,元组中的元素值是不允许修改的,如果强制赋值,修改运行会得到异常信息“TypeError: 'tuple' object does not support item assignment”。示例代码如下:

    >>> tup2 = ('zhangsan', 'lisi', 2017, 1997)
    >>> tup2[0]="lisi"
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: 'tuple' object does not support item assignment
>>>

代码中定义了元组tup2,并通过索引取值,试图修改索引为0的元素值,回车后即可看见异常信息,提示元组无法修改。

虽然无法修改元组中的值,但是可以对元组进行连接组合,例如:

    >>> tup1=("hello","tuple")
    >>> tup2 = ('zhangsan', 'lisi', 2017, 1997)
    >>> print(tup1+tup2)
('hello', 'tuple', 'zhangsan', 'lisi', 2017, 1997)

分别定义元组tup1和tup2,使用+号进行拼接,将拼接后的结果输出即得到两个元组的值在一起。

3.2.4 删除元组

元组中的元素是不允许删除的(见图3-8)。因为删除了其中的元素,也就改变了元组。虽然无法删除元组中的元素,但是可以使用del语句删除整个元组,例如:

    >>> tup1=("hello","tuple")
    >>> print(tup1)
    ('hello', 'tuple')
    >>> del tup1
    >>> print(tup1)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
NameError: name 'tup1' is not defined

上述代码使用del语句删除了元组tup1,之后tup1将不存在,这时通过print打印tup1的值就会报出异常,提示tup1并不存在。

图3-8 元组中元素不可以删除

3.2.5 元组的内置函数

为了更加方便我们的操作,Python元组提供了一些内置函数(见图3-9),包括计算元组中的元素个数、最大值、最小值、列表转换为元组等。下面来看一些常用的方法。

图3-9 元组内置函数

【方法一】

len():用于计算元组元素个数。例如:

    >>> tup1=("hello","tuple")
    >>> print(len(tup1))
2

【方法二】

max():用于返回元组中元素最大值。例如:

    >>> tup1=(11,44,77)
    >>> print(max(tup1))
77

【方法三】

min():返回元组中元素最小值。例如:

    >>> tup1=(11,44,77)
    >>> print(min(tup1))
11

【方法四】

tuple ():将列表转换为元组。例如:

    >>> list=["zhangsan","lisi",1997]
    >>> tup1=tuple(list)
    >>> print(tup1)
    ('zhangsan', 'lisi', 1997)
    >>> print(type(tup1)
<class 'tuple'>