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

3.3.2 元组的基本操作

元组也有一些属于自己的基本操作,如访问元组、元组组合、删除元组、索引和截取等操作。修改元组、删除元组和截取元组等操作和列表中的操作有一些不同。

1.访问元组

元组的访问比较简单,直接通过索引下标即可访问元组中的值,在交互模式下输入:

>>> strnum=('hi','python',2017,2018)
>>> print('strnum[1] is:',strnum[1])
strnum[1] is: python
>>> print('strnum[3] is:',strnum[3])
strnum[3] is: 2018
>>> numbers=(1,2,3,4,5,6)
>>> print('numbers[5] is:',numbers[5])
numbers[5] is: 6
>>> print('numbers[1:3] is:',numbers[1:3])
numbers[1:3] is: (2, 3)

由输出结果可以看到,元组的访问是比较简单的,和列表的访问类似。

访问元组是比较普通的应用,也是元组必备的功能。

2.修改元组

在前面已经明确指出,元组中的元素不允许修改,但是可以对元组进行连接组合,在交互模式下输入:

>>> greeting=('hi','python')
>>> yearnum=(2018,)
>>> print ("合并结果为: ", greeting+yearnum)
合并结果为:  ('hi', 'python', 2018)

由输出结果可以看到,可以对元组进行连接组合操作。

这里读者可能会奇怪元组怎么可以进行组合,其实元组连接组合的实质是生成了一个新的元组,并非是修改了原本的某一个元组。

3.删除元组

在前面已经明确指出,元组中的元素不允许修改,删除也属于修改的一种,也就是说,元组中的元素是不允许删除的,但可以使用del语句删除整个元组,在交互模式下输入:

>>> greeting=('hi','python')
>>> greeting
('hi', 'python')
>>> print('删除元组greeting前:',greeting)
删除元组greeting前: ('hi', 'python')
>>> del greeting
>>> print('删除元组greeting后:',greeting)
Traceback (most recent call last):
File "<pyshell#281>", line 1, in <module>
print('删除元组greeting后:',greeting)
NameError: name 'greeting' is not defined
>>> greeting
Traceback (most recent call last):
File "<pyshell#282>", line 1, in <module>
greeting
NameError: name 'greeting' is not defined

由以上输出结果可以看到,可以删除元组,元组被删除后,若继续访问元组,程序会报错,报错信息告诉我们greeting没有定义,即前面定义的变量在这个时候已经不存在了。所以元组虽然不可以修改,但是整个元组可以被删除。

4.元组的索引和截取

元组也是一个序列,可以通过索引下标访问元组中指定位置的元素,也可以使用分片的方式得到指定的元素。元组通过分片的方式得到的序列结果也是元组。在交互模式下输入:

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