1.元組是以圓括號“()”包圍的數據集合,不同成員以“,”分隔。通過下標進行訪問
2.不可變序列,可以看做不可變的列表,與列表不同:元組中數據一旦確立就不能改變(所以沒有類似列表的增刪改操作,只有基本序列操作)
3.支持任意類型,任意嵌套以及常見的序列操作
4.元組通常用在使語句或用戶定義的函數能夠安全地采用一組值的時候,即被使用的元組的值不會改變
5.tuple沒有像列表一樣有append/extend/remove/pop等增刪改操作,它存在的目的就是不想讓別人修改它
>>> t = () #空元組 >>> t =('a',) #單個元素元組,注意逗號必須 >>> t =('a','b','c',)
其他同序列基本操作:分片,索引:
>>> print t[0] a >>> print t[-1] c >>> print t[:2] #分片打印從0開始到第2個元素,注意不包含第二個 ('a','b')
對元組的操作並不會對原來的元組造成影響:
>>> print t+('d','e') ('a', 'b', 'c', 'd', 'e') >>> print t * 2 ('a', 'b', 'c', 'a', 'b', 'c') >>> print t.index('a') 0 >>> print t.count('b') 1
列表元組轉換,在這裡列表和元組能夠相互轉換是因為他們內部接收的都是一個序列,而不是一個指定的列表或者元組:
>>> l = [1,2,3] >>> lt = tuple(l) >>> print lt (1, 2, 3)
字符串轉元組之後得到字符元組序列:
>>> print tuple('hello') ('h','e','l','l','o')
1.賦值
>>> t = 1,2,3 #等價 t = (1, 2, 3) >>> x, y, z = t #序列拆封,要求左側變量數目和右側序列長度相等
2.函數多個返回值
>>> def test(): >>> return (1,2) >>> x, y = test()
3.傳參
>>> def print_list(l): >>> t = tuple(l) >>> dosomething()
4.字符串格式化
>>> print ("Hi my name is %s, I'm %d years old" % ('stanley',2)) Hi my name is stanley, I'm 2 years old
1.性能:
tuple比列表操作速度更快
2.不可變性:
對不需要的數據進行“寫保護”,使代碼更加安全
不可變性,若在程序中以列表形式傳遞對象集合,可能在任何地方被改變,使用元組,則不能
不可變性只適用於元組本身頂層而非其內容,例如元組內部的列表可以修改