Python 元組 元組的定義 元組(tuple)是一種Python對象類型,元組也是一種序列 Python中的元組與列表類似,不同之處元組的元素不能修改 元組使用小括弧,列表使用方括弧 元組的創建,即在括弧中添加元素,並使用逗號隔開 元組是一種序列,序列的基本操作 len() 、+、*、in、ma ...
Python 元組
元組的定義 元組(tuple)是一種Python對象類型,元組也是一種序列
Python中的元組與列表類似,不同之處元組的元素不能修改
元組使用小括弧,列表使用方括弧
元組的創建,即在括弧中添加元素,並使用逗號隔開
1 >>> a = 123,"aaa",["python","pass"] 2 >>> a 3 (123, 'aaa', ['python', 'pass']) 4 >>> type(a) 5 <type 'tuple'> 6 >>> print "I love %s,and I am a %s"%("Python","programmer") 7 I love Python,and I am a programmer
元組是一種序列,序列的基本操作 len() 、+、*、in、max()、min()、cmp()
元組與序列之間的轉換
元組是不可修改的
1 >>> a =(1,2,3) 2 >>> id(a) #a與b兩個元組進行對比,是兩個不同的對象 3 44307080L 4 >>> b=(1,3,2) 5 >>> id(b) 6 48683696L 7 >>> a 8 (1, 2, 3) 9 >>> len(a) #計算長度 10 3 11 >>> b 12 (1, 3, 2) 13 >>> a + b #將兩個元組連接在一起 14 (1, 2, 3, 1, 3, 2) 15 >>> a * 3 #將a元組重覆3次 16 (1, 2, 3, 1, 2, 3, 1, 2, 3) 17 >>> 3 in a #判斷3這個元素是否在a這個元組中 18 True 19 >>> 4 in a #判斷4這個元素是否在a這個元組中 20 False 21 >>> max(a) #計算元組a中的最大值 22 3 23 >>> min(a) #計算元組a中的最小值 24 1 25 >>> cmp(a,b) #比較元組a、b的大小 26 -1 27 >>> alst =list(a) #將元組轉換為列表 28 >>> alst 29 [1, 2, 3] 30 >>> c =tuple(alst) #將列表轉換為元組 31 >>> c 32 (1, 2, 3) 33 >>> a 34 (1, 2, 3) 35 >>> a.append(4) #向元組中追加元素,元組不可追加元素 36 Traceback (most recent call last): 37 File "<stdin>", line 1, in <module> 38 AttributeError: 'tuple' object has no attribute 'append' #元組沒有屬性append 39 >>> dir(tuple) #dir 查看元組,僅有count index 40 ['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index'] 41 >>> dir(list) 42 ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
元組的索引和切片,與列表和字元串類似
元組中只包含一個元素時,需要在元素後面添加逗號
1 >>> a 2 (1, 2, 3) 3 >>> a[0] #通過索引值取出元素 4 1 5 >>> a[1] 6 2 7 >>> a[2] 8 3 9 >>> a[1:] #通過切片方式取出元素 10 (2, 3) 11 >>> a[0:2] 12 (1, 2) 13 >>> a[::-1] #將元組a反轉 14 (3, 2, 1) 15 >>> alst[1]=100 #向alst列表中增加元素 alst[1] 16 >>> alst 17 [1, 100, 3] 18 >>> a[1]=100 #元組中不能通過此方式添加元素 19 Traceback (most recent call last): 20 File "<stdin>", line 1, in <module> 21 TypeError: 'tuple' object does not support item assignment 元組不支持修改 22 >>> temp =list(a) #將元組a轉換成列表存於temp臨時變數中 23 >>> temp[1]=100 #將100添加到列表temp索引位置為1的地方 24 >>> a =tuple(temp) #再將temp轉為元組 25 >>> a #實現元組與列表之間的互轉 26 (1, 100, 3) 27 >>> [1] #單獨的[1]是一個列表 28 [1] 29 >>> type([1]) 30 <type 'list'> 31 >>> type((1)) #單獨(1)是一個整型 32 <type 'int'> 33 >>> type((1,)) #單獨(1,)是一個元組, 元組中只包含一個元素時,需要在元素後面添加逗號 34 <type 'tuple'> 35 >>>
元組的count()和index()
1 >>> a 2 (1, 100, 3) 3 >>> b=a*3 4 >>> b 5 (1, 100, 3, 1, 100, 3, 1, 100, 3) 6 >>> b.count(1) #統計1出現的次數 7 3 8 >>> b.index(3) #計算3第一次出現的位置 9 2
元組的意義
元組比列表操作速度快
對數據“防寫” 因為元組不可修改
可用於字元串格式化中
可作為字典的key