Python 3.7从零开始学
上QQ阅读APP看书,第一时间看更新

3.3 元组

Python的元组与列表类似,不同之处在于元组的元素不能修改(前面多次提到的字符串也是不能修改的)。创建元组的方法很简单:如果你使用逗号分隔了一些值,就会自动创建元组。

例如,我们如下输入:

     >>> 1,2,3
     (1, 2, 3)
     >>> 'hello','world'
     ('hello', 'world')

上面的操作用逗号分隔了一些值,结果输出的是元组。

我们经常使用圆括号将值括起来,例如:

     >>> (1, 2, 3)
     (1, 2, 3)
     >>> ('hello', 'world')
     ('hello', 'world')

还可以创建空元组,操作如下:

     >>> ()
     ()

如果圆括号中不包含任何内容,就是一个空元组。

创建包含一个值的元组如何实现呢?可以进行如下尝试:

     >>> (1)
     1

输出结果不是元组,包含一个值的元组的实现方式有一些奇特,必须在括号中的元素后加一个逗号,例如:

     >>> (1,)
     (1,)

由上面的示例看到,逗号很重要,只添加括号是没有用的。

下面我们介绍元组的相关操作。

3.3.1 tuple函数

tuple函数的功能和list函数基本上一样,都是以一个序列作为参数,并把它转换为元组。如果参数是元组,参数就会被原样返回,例如:

     >>> tuple(['hello','world'])
     ('hello', 'world')
     >>> tuple('hello')
     ('h', 'e', 'l', 'l', 'o')
     >>> tuple(('hello','world'))  #参数是元组
     ('hello', 'world')

由上面的操作看到,tuple函数传入元组参数后,得到的返回值就是传入的参数。

3.3.2 元组的基本操作

和列表一样,元组也有一些基本操作,如访问元组、修改元组、删除元组、索引和截取等操作。当然,这里的修改、删除和截取等操作和列表的操作不太一样。

1. 访问元组

可以使用下标索引访问元组中的值,例如:

     >>> mix = ('hello', 'world', 2015, 2016)
     >>> print ("mix[1] is: ", mix[1])
     mix[1] is:  world
     >>> num = (1, 2, 3, 4, 5, 6, 7 )
     >>> print ("num[1:5] is: ", num[1:5])
     num[1:5] is:  (2, 3, 4, 5)
2. 修改元组

元组中的元素值不允许修改,但可以对元组进行连接组合,例如:

     >>> field = ('hello', 'world')
     >>> num = (2015, 2016)
     >>> print ("合并结果为: ", field+num)
     合并结果为:  ('hello', 'world', 2015, 2016)
3. 删除元组

元组中的元素值不允许删除,但可以使用del语句删除整个元组,例如:

     >>> field = ('hello', 'world')
     >>> del field
     >>> print('删除后的结果:',field)
     Traceback (most recent call last):
       File "<stdin>", line 1, in <module>
     NameError: name 'field' is not defined

以上实例的元组被删除后,输出变量会有异常信息,输出结果告诉我们field没有定义,即field已经不存在了。

4. 元组索引、截取

因为元组也是一个序列,所以可以访问元组中指定位置的元素,也可以截取索引中的一段元素,例如:

     >>> field = ('hello', 'world', 'welcome')
     >>> field [2]
     'welcome'
     >>> field [-2]
     'world'
     >>> field [1:]
     ('world', 'welcome')

3.3.3 元组内置函数

Python元组提供了一些内置函数,如计算元素个数、返回最大值、返回最小值、列表转换等函数。

len(tuple)用于计算元组元素的个数。使用方式如下:

     >>> tup = ('hello', 'world', 'welcome')
     >>> len(tup)
     3

max(tuple)用于返回元组中元素的最大值。使用方式如下:

     >>> tup = ('6', '3', '8')
     >>> max(tup)
     '8'

min(tuple)用于返回元组中元素的最小值。使用方式如下:

     >>> tup = ('6', '3', '8')
     >>> min(tup)
     '3'

tuple(seq)用于将列表转换为元组。使用方式如下:

     >>> field= ['hello', 'world', 'welcome']
     >>> tup=tuple(field)
     >>> tup
     ('hello', 'world', 'welcome')

以上为Python中常见的一些元组的内置函数,大家可以自行操作其他函数进行尝试。