python(元組)


元組

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')


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM