1、和列表、字符串的关系
和列表的关系:元组基本上是不可改变的列表。元组几乎具有列表所有的特征,除开那些违反不变性的特征。也就是说,没有函数或方法可以改变元组。
和字符串的关系:因为是不可改变的,元组和字符串具有一定的相似性,但元组可以包含任何类型的元素。
2、元组的表示
元组由圆括号表示,其中的元素用逗号分割。为了生成元组,可以使用以下语法:myTuple=(1,2,3)
也可以通过tuple函数创建,就是下文要说的和列表、字符串之间的相互转换
>>> list1=[1,2,3] # 列表
>>> tuple(list1)
(1, 2, 3)
>>>
>>> str1="abd ds" # 字符串
>>> tuple(str1)
('a', 'b', 'd', ' ', 'd', 's')
>>>
>>> tuple1=(1,2,3) # 元组
>>> tuple(tuple1)
(1, 2, 3)
注意事项:
(1)不是圆括号而是逗号创建元组的运算符。没有圆括号的表达式1,2,3,同样产生元组(1,2,3)
>>> 1,2,3
(1, 2, 3)
(2)要创建单元素元组,不能使用表达式(1),因为它只是在解释器中产生1。表达式(1,)生成单元素元组。
>>> a=(1)
>>> a
1
>>> a=(1,)
>>> a
(1,)
(3)空元组
>>> a=()
>>> a
()
3、元组的操作
其他序列(列表和字符串)的操作都可用于元组,除了那些会违反不变性的列表运算符。
(1)“+”和“*”运算符同样适用于元组
(2)分片操作同样适用于元组
(3)成员操作(in)和for循环同样适用于元组
(4)长度(len)、最大(max)和最小(min)同样适用于元组
没有任何的操作会更改元组。
>>> myTuple=(1,2,3,4,5)
>>> myTuple+myTuple
(1, 2, 3, 4, 5, 1, 2, 3, 4, 5)
>>> myTuple*3
(1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5)
>>> myTuple[1]
2
>>> myTuple[:3]
(1, 2, 3)
>>> 2 in myTuple
True
>>> for x in myTuple:
print x,
1 2 3 4 5
>>> len(myTuple)
5
>>> min(myTuple)
1
>>> max(myTuple)
5
元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组。
>>> myTuple=(1,2,3)
>>> del myTuple[1] # 不可删除元组中的元素
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
del myTuple[1] # 不可删除元组中的元素
TypeError: 'tuple' object doesn't support item deletion
>>>
>>> del myTuple # 可以删除整个元组
>>> myTuple # 元组已经不存在了
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
myTuple # 元组已经不存在了
NameError: name 'myTuple' is not defined
4、和列表、字符串之间的相互转换
>>> list1=[6,1,3,4]
>>> tuple1=tuple(list1) # 列表转为元组
>>> tuple1
(6, 1, 3, 4)
>>> tuple2=tuple("abcd") # 字符串转为元组
>>> tuple2
('a', 'b', 'c', 'd')
>>> list2=list(tuple1) # 元组转为列表
>>> list2
[6, 1, 3, 4]
>>> list3=sorted(tuple1) # 元组转为有序的列表(使用sorted函数)
>>> list3
[1, 3, 4, 6]
参考文献:
1、《Python入门经典》