/表示單一數(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)系。