99热99这里只有精品6国产,亚洲中文字幕在线天天更新,在线观看亚洲精品国产福利片 ,久久久久综合网

歡迎加入QQ討論群258996829
麥子學(xué)院 頭像
蘋果6袋
6
麥子學(xué)院

Python學(xué)習(xí)之元組操作

發(fā)布時間:2017-04-28 23:23  回復(fù):0  查看:2293   最后回復(fù):2017-04-28 23:23  
本文和大家分享的主要是python 元組操作相關(guān)內(nèi)容,一起來看看吧,希望對大家 學(xué)習(xí)python有所幫助。
  談起元組,有了解的可能會覺得這個類型跟列表是非常相似的,操作方面也基本雷同,不過他們本質(zhì)的區(qū)別是,元組是不可變數(shù)據(jù)類型,還記得我們之前提到過的字符串也是不可變數(shù)據(jù)類型嗎?讓我們再回顧下什么是不可變性,不可變性就是一旦一個對象被定義了,它的值就不能再本更新,除非是重新創(chuàng)建一個新的對象,那元組跟字符串的區(qū)別是,元組是一個容器對象,它可以包含一個或多個元素,基本特性我們  就介紹了這里,接下來我們看看具體的一些例子:
  1 、元組創(chuàng)建
  >>> t = ()>>> t
  ()>>> t = (1,2,3)>>> t
  (1, 2, 3)
  這里第一行就創(chuàng)建了一個空的元組,然后創(chuàng)建了一個保護(hù)三個元素的元組,元組的創(chuàng)建在這里要注意一點(diǎn),如果你的元組里只有一個元素,要采用元素后加一個逗號的方式來表示,這個叫單元素元組,直接用(元素)的方式是不行的,例子如下:
  >>> t = ('a')>>> t'a'>>> t = ('a',)>>> t
  ('a',)
  2 、獲取元組值
  前面我們說過,元組的數(shù)據(jù)類型跟列表基本一樣,它也支持切片,下標(biāo)的方式去訪問容器的值,例如:
  >>> t = ('abc', 20, ['f','g'])>>> t
  ('abc', 20, ['f', 'g'])>>> t[0] 'abc'>>> t[2][0]'f'>>> t[2][5]
  Traceback (mostrecentcalllast):
  File "", line 1,  in < module>IndexError: listindexoutofrange
  因?yàn)樵M是容器類型,所以它也可以包含一個列表作為元素,訪問值得時候可以通過切片方式訪問其中的值,如果訪問的值不存在就會顯示超出索引范圍的錯誤。
  3 、元組更新
  前面提到過因?yàn)樵M是不可變類型,前面平時我們切片的操作也只是讀取,不能夠進(jìn)行值得替換,否則會報(bào)錯。
  >>> t[0]'abc'>>> t[0] = 'bcd'
  Traceback (mostrecentcalllast):
  File "", line 1,  in < module>TypeError: 'tuple' object doesnot supportitemassignment
  如果要改變元組只能新創(chuàng)建一個新的對象:
  >>> t
  ('abc', 20, ['f', 'g'])>>> id(t)139702583814576>>> t = ('abc', 20, ['f', 'g', 'h'])>>> t
  ('abc', 20, ['f', 'g', 'h'])>>> id(t)139702583814096
  通過id() 函數(shù)就可以看出我們創(chuàng)建了一個新的對象, id() 函數(shù)官方解釋如下:
   Return the “identity” ofanobject. This  is aninteger ( or long integer) whichis guaranteedto beuniqueand constantfor this object duringitslifetime. Twoobjectswithnon-overlappinglifetimesmayhavethesameid() value.
  CPythonimplementationdetail: This  is theaddressoftheobject  in memory.
  簡單來說就是返回這個對象生命周期的一個唯一標(biāo)示。
  除了重新賦值,元組也支持“+” 字符的操作,通過 + 字符可以把兩個元組連接起來生成一個新的元組。
  >>> t1 = ('xyz', 10)>>> t
  ('abc', 20, ['f', 'g', 'h'])>>> t1
  ('xyz', 10)>>> t2 = t + t1>>> t2
  ('abc', 20, ['f', 'g', 'h'], 'xyz', 10)
  關(guān)于元組的元素更新,還有一個特別的地方,就是雖然元組是不可變類型,但它包含的元素如果是可變對象,就可以改變其中的值,假如一個元組中包含一個列表,那這個列表中的值是可以變化的。
  >>> t2
  ('abc', 20, ['f', 'g', 'h'], 'xyz', 10)
  >>> t2[2][1]
  'g'
  >>> t2[2][1]='o'
  >>> t2
  ('abc', 20, ['f', 'o', 'h'], 'xyz', 10)
  3 、列表和元組互轉(zhuǎn)
  如果有一個列表要轉(zhuǎn)成元組,可以直接通過tuple() 函數(shù)操作,如果元組要轉(zhuǎn)成列表可通過 list() 函數(shù)操作,有了這 2 個函數(shù),這兩個容器類型的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換非常 方便。
  >>> t
  ('abc', 20, ['f', 'o', 'h'])>>>
  >>> list(t)
  ['abc', 20, ['f', 'o', 'h']]>>> tl = list(t)>>> tl
  ['abc', 20, ['f', 'o', 'h']]>>>
  >>>
  >>> t = tuple(tl)>>> t
  ('abc', 20, ['f', 'o', 'h'])
  除了這2 個函數(shù),還有一些常用的例如 max(),min(),len() 等函數(shù)。
來源:mindg

您還未登錄,請先登錄

熱門帖子

最新帖子

?