Python基礎(chǔ)數(shù)據(jù)類型學(xué)習(xí)1:元組

一、元組的簡介

元組是個有序的序列,其中包含0至多個對象引用,元組是固定的,因此,不能替換或刪除其中包含的數(shù)據(jù)項。如果我們需要修改一個元組,可以使用list()函數(shù)將其轉(zhuǎn)換為列表,然后再對列表進行修改,最后通過使用tuple()再轉(zhuǎn)換為元組。

二、元組的創(chuàng)建

空元組可使用空圓括號()創(chuàng)建,也可以使用tuple()函數(shù)進行創(chuàng)建。包含一個或多個項的元組則使用逗號分隔進行創(chuàng)建。有時,為避免語義的二義性,必須將元組包含在圓括號內(nèi)。例如將元組傳遞給函數(shù)或用函數(shù)創(chuàng)建元組時,應(yīng)寫成function((1,2,3))和tuple((1,2,3))。
示例:

>>>a=()  #創(chuàng)建空元組
>>>b=tuple()  #利用函數(shù)創(chuàng)建空元組
>>>c=1,2,3  #創(chuàng)建含項的元組
>>>d=(1,2,3)  #創(chuàng)建含項的元組
>>>e=tuple((1,2,3))  #利用函數(shù)創(chuàng)建含項的元組
>>>f=[1,2,3]
>>>g=tuple(e)  #利用tuple()函數(shù)將列表轉(zhuǎn)換為元組

三、元組的操作

(一)元組項的讀取

我們首先創(chuàng)建一個示例元組:

>>>stu=('zhang','上海',16,'181厘米','足球')
>>>stu
('zhang','上海',16,'181厘米','足球')
stu[-5] stu[-4] stu[-3] stu[-2] stu[-1]
‘zhang' '上海' 16 '181厘米' '足球'
stu[0] stu[1] stu[2] stu[3] stu[4]

表:元組的索引位置
我們就可以通過索引位置來讀取元組中具體項的內(nèi)容:

>>>stu[0]
'zhang'
>>>stu[-1]
'足球'
>>>stu[4]
’足球'

利用索引位置我們一次只能讀取一個項的內(nèi)容,要讀取多項的內(nèi)容我們可以使用分片。示例:

>>>stu[2:]  #讀取從第三項開始的所有項的內(nèi)容,與stu[-3:]的效果一樣
(16,'181厘米','足球')
>>>stu[-3:]
(16,'181厘米',‘足球')
>>>stu[1:3]  #讀取第二,第三項的內(nèi)容
('上?!?,16)
>>>stu[:]  #讀取所有項內(nèi)容
('zhang', '上海', 16, '181厘米', '足球')

(二)元組的其它操作

元組除了可以使用分片操作,還可以使用+(連接)和*(賦值)操作符。同時也可以使用in與not in來測試成員的關(guān)系。元組也可以使用比較操作符(<、<=、==、!=、>=、>)進行比較,比較是逐項進行的。
示例:

>>>a=(1,2)
>>>b=(1,2)
>>>c=(1,2,3)
>>>a==b
True
>>>a!=b
False
>>>a>c
False
>>>a=a*5  #此操作并不是改變元組的值,而是生成一個新的元組,再將a指向新的元組
(1,2,1,2,1,2,1,2,1,2)
>>>newstu=stu[:2]+('高中',)+stu[2:]  #使用+連接符生成一個新的元組
>>>newstu
('zhang', '上海', '高中', 16, '181厘米', '足球')

(三)元組的方法

元組只提供了兩種方法:count(x),返回對象x在元組中出現(xiàn)的次數(shù);index(x),返回對象在元組中從左邊算起第一次出現(xiàn)的位置,如果元組中不包含x時,則產(chǎn)生一個ValueError異常。
示例:

>>>a.count(1)
1
>>>a.index(2)
1
>>>a.index(3)
Traceback (most recent call last):
  File "<pyshell#102>", line 1, in <module>
    a.index(3)
ValueError: tuple.index(x): x not in tuple

(四)元組的嵌套

在一個元組內(nèi)可以有多層嵌套的元組。任何嵌套層次的元組都可以使用上述的方式進行創(chuàng)建,也可以使用分片等方法。
示例:

>>>colors=('green','blue','red','yellow','gray')
>>>hair=('long',colors)
>>>hair  #hair里面還嵌套一個元組
('long',('green','blue','red','yellow','gray'))
>>>hair[0]  #取元組第一個項值
'long'
>>>hair[1][2]  #取元組中第二項中的第三項值
'red'
>>>hair[1][2:-1]
('red','yellow')

四、命名的元組

根據(jù)索引位置選取元組中的項有時會非常不便 ,有時特別是在對付一些復(fù)雜嵌套結(jié)構(gòu)的元組時會很容易造成混亂,我們可以使用collections模塊的namedtuple()函數(shù)來實現(xiàn)根據(jù)名稱引用元組中的項。
示例:

>>>import collections
>>>stu=collections.namedtuple("stu","name age high hobby")

collections.namedtuple()中的第一個參數(shù)是要創(chuàng)建的自定義元組數(shù)據(jù)類型的名稱,第二個參數(shù)是一個字符串,字符串中包含元組中每一項的名稱,中間用空格間隔。這里我們就創(chuàng)建了一個名為stu的自定義元組數(shù)據(jù)類型,下面我們就可以對其進行引用了。

>>>NO1=stu("zhang",16,"181厘米","足球")
>>>NO1.name
'zhang'
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容