元組
Python 的元組與列表類似,不同之處在於元組的元素不能修改。
元組使用小括號 ( ),列表使用方括號 [ ]。
元組創建很簡單,只需要在括號中添加元素,並使用逗號隔開即可
創建一個元組
A = (1,2,'python','happy') #括號內可不輸入內容,即為空元組 B = 1,2,3,'nice' #不用加括號也可以 print(A) print(B)
print(type(A))
A = (1) 定義的不是tuple,是1這個數!這是因為括號()既可以表示tuple,又可以表示數學公式中的小括號,這就產生了歧義,因此,Python規定,這種情況下,按小括號進行計算,計算結果自然是1
A = (1) #不加逗號是整型 B = (2,) #加了逗號是元組 print(type(A)) print(type(B))
索引(和列表一樣有正反索引)
A = (1,2,3,'python','happy') for i in range(5): print(A[i]) #遍歷輸出A[0]、A[1]、A[2]、A[3]、A[4]
A = (1,2,3,'python','happy') print(A[-1]) print(A[-2]) print(A[-3]) print(A[-4]) print(A[-5])
訪問元組
A = (1,2,3,'python','happy') print(A[1:3]) #實際指A[1]到A[2](不包括A[3]) print(A[:3]) #不填寫默認從A[0]開始 print(A[1:]) #從A[1]開始截取所有元素 print(A[:]) print(A[1:-1]) print(A[-1:3]) #倒着取輸出空 print(A[-1:-3])
元組中的元素是不可進行修改和刪除的(實質是元組所指向的內存中的內容不可變)
A = (1,2,3,'python','happy') A[1]=8
不支持修改元組
我們重建一個元組試試
A = (1,2,3,'python','happy') print(id(A)) A = (1,2,3,'python') print(id(A))
結論:從以上實例可以看出,重新賦值的元組 tup,綁定到新的對象了,不是修改了原來的對象
補充例子:
A = (1,2,['a','b']) A[2][0]='X' A[2][1]='y' print(A)
這個元組A定義的時候有3個元素,分別是1,2和一個list(列表)。不是說元組一旦定義后就不可變了嗎?怎么后來又變了?
我們先看看定義的時候元組A包含的3個元素:當我們把list的元素'a'和'b'修改為'X'和'Y'后,表面上看,A的元素確實變了,但其實變的不是A的元素,而是list的元素。元組A一開始指向的list並沒有改成別的list,所以,元組所謂的"不變"是說,元組的每個元素,指向永遠不變。即指向'a',就不能改成指向'b',指向一個list,就不能改成指向其他對象,但指向的這個list本身是可變的!理解了"指向不變"后,要創建一個內容也不變的tuple怎么做?那就必須保證tuple的每一個元素本身也不能變
不能刪除元組中的元素,但我們可以使用del方法刪除整個元組
A = (1,2,3,'python','happy') print(A) del A print(A) #元組刪除后,輸出會有異常信息
不能修改元組內的元素,但可以進行拼接元組
A = (1,2,3,'python','happy') B = (6,5) print(A+B)
元組運算符
Python 表達式 | 結果 | 描述 |
---|---|---|
len((1, 2, 3)) | 3 | 計算元素個數 |
(1, 2, 3) + (4, 5, 6) | (1, 2, 3, 4, 5, 6) | 連接 |
('Hi!',) * 4 | ('Hi!', 'Hi!', 'Hi!', 'Hi!') | 復制 |
3 in (1, 2, 3) | True | 元素是否存在 |
for x in (1, 2, 3): print (x,) | 1 2 3 | 迭代 |
元組的內置函數
1 | len(tuple) 計算元組元素個數。 |
>>> tuple1 = ('Google', 'Runoob', 'Taobao') >>> len(tuple1) 3 >>> |
2 | max(tuple) 返回元組中元素最大值。 |
>>> tuple2 = ('5', '4', '8') >>> max(tuple2) '8' >>> |
3 | min(tuple) 返回元組中元素最小值。 |
>>> tuple2 = ('5', '4', '8') >>> min(tuple2) '4' >>> |
4 | tuple(iterable) 將可迭代系列轉換為元組。 |
>>> list1= ['Google', 'Taobao', 'Runoob', 'Baidu'] >>> tuple1=tuple(list1) >>> tuple1 ('Google', 'Taobao', 'Runoob', 'Baidu') |