元组其实跟之前讲过的列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表,用小括号()表示。
举个栗子:
元组创建:
>>> tup1 = () # 创建空元组[quote]
>> tup2 = ('DEV', 'DBA', 1, 2, 3) # 中括号方式
>>> tup3 = "x", "y", "z" # 字符串排列方式
>>>
# 元组中只包含一个元素时,需要在元素后面添加逗号
>>> tup4 = ('openskill')
>>> print(tup4)
openskill
>>> tup5 = ('xinsz08.cn',)
>>> print(tup5)
('xinsz08.cn',)
tuple(元组)是一种特殊的列表,不同点是元组一旦创建就不能修改,上述的所有会修改列表内容的操作例如 sort()、append()等对于元组都不再适用:
>>> courses = ('C++', 'Cloud', 'Linux', 'PHP')
>>> courses
('C++', 'Cloud', 'Linux', 'PHP')
>>> courses[0]
'C++'
>>> courses.sort()
Traceback (most recent call last):
File"<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'sort'
>>> del courses[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object doesn't support item deletion
在编写程序的时候,元组比列表更安全,如果是只读的数据,尽可能使用元组,另外务必在使用过程中时刻记住元组是不可修改的,但是元组中如果包含可变的数据元素,这些数据元素是可以修改的,例如元组中包含一个列表,这个列表的内容是可以修改的:
>>> new_courses = ('Linux', ['BigData1','BigData2','BigData3'],'Vim')
>>> new_courses[1]
['BigData1', 'BigData2', 'BigData3']
>>> new_courses[1].append('BigData4')
>>> new_courses
('Linux', ['BigData1', 'BigData2', 'BigData3','BigData4'], 'Vim')
最后,需要提醒下如果要创建只有一个元素的元组,是不可以直接使用括号中一个元素的,需要在元素值后面跟一个逗号:
>>> courses = ('Linux')
>>> courses
'Linux'
>>> type(courses)
<type 'str'> //这个是字符串类型啊亲
>>> courses = ('Linux',)
>>> courses
('Linux',)
>>> type(courses)
<type 'tuple'> //这才是元组啊亲
修改元组 元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例:
#!/usr/bin/env python3
# _*_coding:utf-8_*_
# Author: Lucky.chen
tup1 = (200000, 400000)
tup2 = ('MG', 'JD')
# 以下修改元组元素操作是非法的。
# tup1[0] = 100;
# 创建一个新的元组
tup3 = tup1 + tup2
print(tup3)
删除元组 元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例:
#!/usr/bin/env python3
# _*_coding:utf-8_*_
# Author: Lucky.chen
tup = ('dog', 'cat', 3000, 2000)
print(tup)
del tup
print("After deleting tup : ")
print(tup)
总结: