python tuple 元組

來源:互聯網
上載者:User

標籤:其他   ges   type   訪問   統計   計算   不包含   logs   存在   

python 3.6.5

 

元組的特性和定義

與清單類型 只不過 [  ] 改成了()

特性:

  1.不可變(元組本身不可變,但是可以存可變類型的element){猜測因為可變element的地址不可變而存在元組裡面也只是地址而已:例如:list dict 等}

  2.可存放多個值

  3.按照從左至右的順序定義元組元素,下表從0,開始順序訪問。有序

  #解釋為什麼要有不可變的元組出現呢?

 

建立:

  ages=tuple()

  ages=()

  ages=1, #注意以逗號隔開,預設為元組

  ages=( 1 , )#注意,元組中只包含一個元素時,需要在元素後面添加逗號來消除歧義

  ages=(11,22,33,44)

  ages=tuple((11,22,33,44))

 

tuple_list=(v for v in range(1,8))#產生器運算式
print(tuple_list,type(tuple_list))
tup=tuple(tuple_list)
print(tup,type(tup))
>>:<generator object <genexpr> at 0x0000000001EC18E0> <class ‘generator‘>
>>:(1, 2, 3, 4, 5, 6, 7) <class ‘tuple‘>

常用操作:

  索引 #正向取 和 反向取 :只能取

  迴圈 for in 可迭代迴圈

  長度 len()

  成員運算 in 和 not in 

  切片:顧頭不顧尾,步長 ,反向步長

  元組運算子 + 和 *   但是得到的是新tuple

  統計個數:tuple.count(‘ 出現了幾次‘)#沒有返回0

  返回索引:tuple.index(‘要尋找的element‘) #找不到會報錯

  

和列表 差不多 可以去看列表相關操作
或者字串
https://www.cnblogs.com/yanxiatingyu/p/9277115.html

tup = (1, 2, [‘a‘, ‘b‘, ‘c‘], ‘d‘, ‘e‘, (‘gu‘, ‘tang‘))

print ("tup[0] =",tup[0]) # 列印索引為0的元素
#輸出結果
tup[0] = 1

print ("tup[1:] =",tup[1:]) #從索引為1到最後一個元素
#輸出結果
tup[1:] = (2, [‘a‘, ‘b‘, ‘c‘], ‘d‘, ‘e‘, (‘gu‘, ‘tang‘))

print ("tup[:-1] =",tup[:-1]) # 到倒第二個元素但不包含第二個
#輸出結果
tup[:-1] = (1, 2, [‘a‘, ‘b‘, ‘c‘], ‘d‘, ‘e‘)

print ("tup[1::1] =",tup[1::1]) # 等價於tup[1:] 從左至右一個個去取,步長為1
#輸出結果
tup[1::1] = (2, [‘a‘, ‘b‘, ‘c‘], ‘d‘, ‘e‘, (‘gu‘, ‘tang‘))

print ("tup[1::2] =",tup[1::2]) #從左至右隔一個去取 步長為2
#輸出結果
tup[1::2] = (2, ‘d‘, (‘gu‘, ‘tang‘))

print ("tup[::-1]",tup[::-1]) # 反向輸出 步長為1
#輸出結果
tup[::-1] ((‘gu‘, ‘tang‘), ‘e‘, ‘d‘, [‘a‘, ‘b‘, ‘c‘], 2, 1)

print ("tup[::-2]",tup[::-2]) # 反向輸出 步長為2(隔一個去取))
#輸出結果
tup[::-2] ((‘gu‘, ‘tang‘), ‘d‘, 2)


八、元組內建函數
Python元組包含了以下內建函數
1、cmp(tuple1, tuple2):比較兩個元組元素。
2、len(tuple):計算元組元素個數。
3、max(tuple):返回元組中元素最大值。
4、min(tuple):返回元組中元素最小值。
5、tuple(seq):將列錶轉換為元組


關於元組不可變
lis = [1, 2, 3]
tup = (1, 2, 3, 4, lis)
print(tup)
# (1, 2, 3, 4, [1, 2, 3])
tup[4][1] = ‘元素改變了‘
print(tup)
# (1, 2, 3, 4, [1, ‘元素改變了‘, 3])

表面上看,tuple的元素確實變了,但其實變的不是tuple的元素,而是list的元素。tuple一開始指向的list並沒有改成別的list,所以,tuple所謂的“不變”是說,tuple的每個元素,
指向永遠不變。即指向‘a‘,就不能改成指向‘b‘,指向一個list,就不能改成指向其他對象,但指向的這個list本身是可變的!
理解了“指向不變”後,要建立一個內容也不變的tuple怎麼做?那就必須保證tuple的每一個元素本身也不能變。

python tuple 元組

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.