Python組合數(shù)據(jù)類型序列、集合、映射

/表示單一數(shù)據(jù)的類型稱為基本數(shù)據(jù)類型。

/能夠表示多個(gè)數(shù)據(jù)的類型,稱為組合數(shù)據(jù)類型。

/序列類型:列表(list),字符串(str),元組(tuple)

/集合類型:集合(set)

/映射類型:字典(map)

/序列類型是一個(gè)元素向量,元素之間存在先后關(guān)系,通過序號訪問,元素之間不排他。

/集合類型是一個(gè)元素集合,元素之間無序,相同元素在集合中唯一。

/映射類型是"鍵"-"值"數(shù)據(jù)項(xiàng)的組合,每個(gè)元素都是一個(gè)鍵值對,表示為(key,value)。

/序列類型的通用操作符和函數(shù)

1. x in s :如果x是s的元素,返回True,否則返回False。

2. x not in s :如果x不是s的元素,返回True,否則返回False。

3. s + t :連接s和t。

4. s*n或n*s:將序列s重復(fù)n遍。

5. s[i] :索引,返回s中第i個(gè)元素。

6. s[i:j] :分片。返回列表s中第i到j(luò)個(gè)元素的子序列。(不包含第j個(gè)元素)

7. s[i:j:k] :步驟分片。返回包含序列s中第i到第j個(gè)元素,以k為步長的子序列。

8. len(s) :序列s的元素個(gè)數(shù)。(長度)

9. min(s) :序列s中的最小值。

10. max(s) :序列s中的最大值。

11. s.index(x[,i[,j]]) :序列s中從i開始到j(luò)位置中,出現(xiàn)元素x的位置。

12. s.count(x) :序列s中出現(xiàn)x的總個(gè)數(shù)。

/元組(tuple)是序列類型中比較特殊的類型,一經(jīng)創(chuàng)建就不能被修改。元組類型采用逗號和圓括號(可選)來表示。

/一個(gè)元組可以作為另一個(gè)元組的元素,可以采用多級索引獲取信息。tuple[x][y]即表示索引元組tuple中第x元素(該元素應(yīng)為元組類型)中的序號為y的元素。

/元組多用于:函數(shù)多返回值、多變量同步賦值、循環(huán)遍歷

/def func(x): #函數(shù)多返回值

??return x,x**3

/a,b = 'dog' , 'tiger' #多變量同步賦值

a,b = (b,a)

/import math

for x,y in ((1,0),(2,5),(3,8)):

??print(math.hypot(x,y)) #求多個(gè)坐標(biāo)值到原點(diǎn)的距離

/集合元素是無序組合,不可索引,不可分片,不可變,不可修改,不可重復(fù)。

/由于集合是不可重復(fù)的,所以可用于元素去重。

/集合類型的操作符

1. S-T或S.difference(T) :返回一個(gè)新集合,包含集合S中的元素,但不包含集合T中的元素。

2. s-=或S.difference_update(T) :更新集合S,包含在集合S中的元素,但不要集合T中的元素。

3. S&T或S.intersection(T) :返回一個(gè)新集合,包含同時(shí)在集合S和集合T中的元素。

4. S&=T或S.intersection_update(T) :更新集合S,包含同時(shí)在集合S和集合T中的元素。

5. S^T或S.symmetric_difference(T) :返回一個(gè)新集合,包含集合S和集合T中的元素,但不包含同時(shí)在集合S和集合T中的元素。

6. S^=T或S.symmetric_difference_update(T) :更新集合S,包含集合S和集合T中的元素,但不包含同時(shí)在集合S和集合T中的元素。

7.S|T或S.union(T) :返回一個(gè)新集合包含集合S和集合T中所有元素。

8.S|=T或S.update(T) :更新集合S,包括集合S和集合T中所有元素。

9.S<=T或S.issubset : 判斷集合S與集合T相同,或集合S是集合T的子集,返回True,否則返回False。可以用S

10.S>=T或S.issuperset :判斷集合S與集合T相同,或集合S是集合T的超集,返回True,否則返回False??梢杂肧>T判斷是否S是T的真超集。

/上述中表達(dá)了集合類型的4種基本操作:交集(&)、并集(|)、差集(-)、補(bǔ)集(^)。

/集合類型的操作函數(shù)或方法

1. S.add(x) :如果數(shù)據(jù)項(xiàng)x不在集合S中,將x增加到集合S。

2. S.clear() :移除集合S中所有數(shù)據(jù)項(xiàng)。

3. S.copy() :返回一個(gè)集合S的副本。

4. S.pop() :隨機(jī)返回集合S中的一個(gè)元素,如果S為空,產(chǎn)生KeyError異常。

5. S.discard(x) :如果元素x在集合S中,將x移除,如果x不在集合S中,不報(bào)錯(cuò)。

6. S.remove(x) :如果元素在集合S中,將第一個(gè)x移除,如果x不在集合S中,產(chǎn)生KeyError異常。

7. S.isdisjoint(T) :如果集合S與集合T沒有相同元素,返回True。

8. len(S) :返回集合S的元素個(gè)數(shù)。

9. x in S :如果x在集合S中,返回True,如果不在,返回False。

10. x not in S :如果x不是集合S中的元素,返回True,否則返回False。

/集合類型主要用于3個(gè)場景:成員關(guān)系測試、元素去重和刪除數(shù)據(jù)項(xiàng)。例如:

"BIT" in {"pyrhon","BIT","123","good"} #成員關(guān)系測試

True

tup = ("python","BIT","123","GOOD","123") #元素去重

set(tup)

{"python","BIT","123","GOOD"}

newtup = tuple(set(tup) - {"python"}) #刪除數(shù)據(jù)項(xiàng)

{"BIT","123","GOOD"}

/映射類型是“鍵-值”數(shù)據(jù)項(xiàng)的組合,每個(gè)元素是一個(gè)鍵值對,即元素是(key,value),元素之間是無序的。鍵key表示一個(gè)屬性,也可以理解為一個(gè)類別或項(xiàng)目,值(value)是屬性的內(nèi)容,鍵值對刻畫了一個(gè)屬性和它的值。

/序列是數(shù)值與位置的關(guān)系;集合是不重復(fù)數(shù)值的無序組合;映射是數(shù)值與名稱的關(guān)系。




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

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

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