元组
元组与列表的区别就在于,元组是一种不可变序列。元组变量的赋值要在定义时就进行,这就像C语言中的const变量或是C++的引用,定义时赋值之后就不允许有修改。元组存在的意义是:
- 元组在映射中可以作为键使用,因为要保证键的不变性。
- 元组作为很多内置函数和方法的返回值存在。
tuple()函数
类比于列表的list()函数,元组有tuple()函数来返回元组。
>>>
>>> tul1= tuple('abcdef')
>>> tul1
('a', 'b', 'c', 'd', 'e', 'f')
>>>
元组语法
从tuple返回的元组我们看到,元组的语法是用圆括号(大部分时候是)括起来的、用逗号加以分隔的元素的集合。逗号在元组构成中十分重要:
>>>
>>> #这是一个数学数
>>> (1)
1
>>> #这是一个元组
>>> (1,)
(1,)
>>>
一个更加明显的例子:
>>>
>>> a = 10*(1)
>>> b = 10*(1,)
>>> a
10
>>> b
(1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
>>>
了解了逗号在元组构成的重要性后,我们来看如何定义各种元组
定义元组
定义空元组
>>>
>>> tul1=()
>>> tul1
()
>>>
定义只有一个元素的元组
>>>
>>> tul2=(1,)
>>> tul2
(1,)
>>>
定义多个元素构成的元组类似于定义一个元素的元组,也可以使用tuple函数把其他序列转换为元组:
>>>
>>> a = [1,2,3,4,5,6]
>>> b = tuple (a)
>>> b
(1, 2, 3, 4, 5, 6)
>>>
元组操作
因为元组不可修改,与列表比较少了很多操作,比如attend、insert 等。而其他操作例如分片、索引操作等都类似于列表。故在使用元组时,时刻记住元组不可修改,自然就知道元组有哪些操作了。
元组打包和解包
元组的创建即打包的过程tuple = ("app","banan")
元组中每个元素都需要对应一个变量才能解包成功
a,b = tuple
print a,b
二元元组
元组遍历
方法一利用range()和len()
x = tuple('abcdef')
print x
for i in range(len(x)) :
print "tuple[%d] = " %i, x[i]
结果
('a', 'b', 'c', 'd', 'e', 'f')
tuple[0] = a
tuple[1] = b
tuple[2] = c
tuple[3] = d
tuple[4] = e
tuple[5] = f
方法二
利用map()实现遍历
x = tuple('abcdef')
print x
k = 0
for i in map(None,x):
print "tuple[%d] = " %k,i
k += 1
部分转自http://www.cnblogs.com/QG-whz/p/4782809.html#_label1