Tuple(元组)
元组为一种固定长度、不可改变的Python体序列。
创建方法有:
1. 直接用逗号分开
In [1]: tup = 4, 5, 6
In [2]: tup
Out[2]: (4, 5, 6)
2.创建复杂一些的元组
In [3]: nested_tup = (4, 5, 6), (7, 8)
In [4]: nested_tup
Out[4]: ((4, 5, 6), (7, 8))
3.将任何序列或迭代子(iterator)转化为元组,用tuple
In [5]: tuple([4, 0, 2])
Out[5]: (4, 0, 2)
In [6]: tup = tuple('string')
In [7]: tup
Out[7]: ('s', 't', 'r', 'i', 'n', 'g')
通过中括号[ ]来获取元组中的元素
In [8]: tup[0]
Out[8]: 's'
有些元组中的元素是不可改变的
In [9]: tup = tuple(['foo', [1, 2], True])
In [10]: tup[2] = False
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-10-c7308343b841> in <module>()
----> 1 tup[2] = False
TypeError: 'tuple' object does not support item assignment
如果元组中的一个体是可修改的,如列表list,则可以在内部进行修改
In [11]: tup[1].append(3)
In [12]: tup
Out[12]: ('foo', [1, 2, 3], True)
可以通过加号“+”来合并元组,得到长元组
In [13]: (4, None, 'foo') + (6, 0) + ('bar',)
Out[13]: (4, None, 'foo', 6, 0, 'bar')
将元组乘以一个整数,则得到整数倍的copy长度的元组
In [14]: ('foo', 'bar') * 4
Out[14]: ('foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'bar')
这里应注意,体本身没有被复制,而只是增加了索引