1.0什麼是組合資料型別?
組合資料型別就是能夠表示多個資料的型別.
1.1 組合資料型別的作用:
將多個同型別或不同型別的資料組織起來,通過單一的表示使資料操作更有序,更容易.
組合資料型別可以分為三大類:序列型別,集合型別,對映型別.
1.2 序列型別
序列型別是乙個元素向量,元素之間存在先後關係,通過序號訪問,元素之間不排他
序列型別之間存在順序關係,所以序列型別中可以存在數值相同但位置不同的元素.
當需要訪問序列中某個特定值時,只需要通過下標標出即可,而且序列型別支援成員關係操作符(in),長度計算函式(len()),分片()
序列型別中的元素本身也可以是序列型別.
序列型別:字串(str),元組(tuple),列表(list)
字串:可以看作單一字元的有序組合,由於字串型別十分常用,且單一字串只表達乙個含義,也可看為基本資料型別.
元組:元組是包含0個或者多個資料項的不可變序列型別,元組生成後是固定的,其中任何資料項不能替換或刪除.
列表:是乙個可以修改的序列型別,使用很靈活.
注意:無論是哪種資料型別,只要是序列型別,都可以使用相同的索引體系,即正向遞增序號和反向遞減序號.
序列型別的通用操作符和函式
x in s :如果x是s的元素,返回true,否則返回flase
x not in s :如果x不是s的元素,返回true,否則返回flase
s + t :連線s和t
s * n 或 (n * s);將序列s複製n次
s[i] : 索引,返回序列的第i個元素.
s[i:j] : 分片,返回包含序列s第i到j個元素的子串行(不包含第j個元素)
s[i:j:k] : 步驟切片,返回包含序列s第i到j個元素以k為步數子串行
建立元組 a: a = 『1』,『2』,『3』,『4』,『5』,『6』,『7』,『8』,『9』,『10』
print(a[2:9]) 輸出結果 (『3』, 『4』, 『5』, 『6』, 『7』, 『8』, 『9』)
print(a[2:9:6]) 輸出結果(『3』, 『9』)
print(a[::-5]) 輸出結果(『10』, 『5』)
print(a[::]) 輸出結果 (『1』, 『2』, 『3』, 『4』, 『5』, 『6』, 『7』, 『8』, 『9』, 『10』)
len(s) 序列s中元素的個數
min(s) 序列s中最小元素
max(s) 序列s中最大元素
s.index(x[,i[,j]]) 序列s中從i開始到j位置中第一次出現元素x的位置
s.count(x) 序列s**現x的總次數
1.3集合型別
集合(set):元素型別只能是固定資料型別,例如整數,浮點數,字串,元組等
列表,字典和集合資料型別都是可變資料型別,不能作為集合的元素出現
集合型別是乙個元素集合,元素之間無序,相同元素在集合中唯一存在.
集合是無序組合,沒有索引和位置概念,不能分片,集合中的元素可以動態增加或刪除。
集合用大括號{} 表示,可以用賦值語句生成乙個集合。
a =
print(a) 輸出結果
集合是無序的,集合的列印效果與定義順序可以不一致,由於集合元素獨一無二,使用集合型別能夠過濾掉重複元素。
集合型別的操作符
集合型別的操作函式或方法:
s.add(x) 如果資料項x不在集合s中,將x增加到s中。
s.clear() 移除s中的所有資料項。
s.copy() 返回s集合的乙個副本。
s.pop() 隨機返回集合s中的乙個元素,如果s為空,產生keyerror異常。
s.discard(x) 如果x在集合s中,移除該元素,如果x不在集合s中,不報錯。
s.remove(x) 如果x在集合s中,移除該元素,不在則產生keyerror異常。
s.isdisjoint(t) 如果集合s與t沒有相同元素,返回true
len(s) 返回集合s的元素個數。
x in s 如果x是s的元素,返回true,否則返回flase
x not in s :如果x不是s的元素,返回true,否則返回flase
集合型別主要用於三個場景:成員關係測試,元素去重和刪除資料項
a =
newa =
tuple
(set
(a)-
)#去重同時刪除資料項
print
(newa)
#輸出結果
集合拓展:
python編譯器中界定固定資料型別與否主要考察型別是否能夠進行雜湊運算,能進行雜湊運算的型別都可以作為集合元素.
雜湊運算可以將任意長度的二進位制值對映為較短的固定長度的二進位制值,這個小的二進位制值成為雜湊值.
雜湊值是對資料的一種有損且緊湊的表示形式.
python提供了內建的雜湊運算函式 hash() ,它可以對大多數資料型別產生乙個雜湊值。這些雜湊值與雜湊前的內容無關,也和這些內容的組合無關,
可以說雜湊是資料在另乙個資料維度的體現
1.4對映型別:字典(map)
對映型別是』鍵-值』資料項的組合,每乙個元素是乙個鍵值對,表示為(key,value).元素之間是無序的,鍵值對(key,value)是一種二元關係,源於屬性和值的對映關係。
鍵表示乙個屬性,也可理解為乙個類別或專案,值(value)是屬性的內容,鍵值對刻畫了乙個屬性和他的值,鍵值對將對映結構化,用於儲存和表達。
在python中,對映型別主要以字典(dict)體現,
在python中,每一類組合資料型別都對應乙個或多個具體的資料型別.
python 組合資料型別
python提供了五種內建序列型別 bytearray bytes list strtuple 元組元組是個有序的序列,其中包含0個或多個物件引用。與字串類似,元組也是固定的,因此不能替換或刪除其中的任意資料項。如果需要修改,我們應該使用列表而不是元組,如果我們有乙個元組,但又要對其進行修改,那麼可...
Python組合資料型別
組合資料型別的英文是composite data type,其中composite的意思是復合,組合的意思.這就是組合資料型別名字的由來.下面介紹一些列表的常用操作 在列表末尾加入乙個元素 heros list print heros 輸出結果 小魚人 1.2 extend 下面是extend的官方...
python組合資料型別
組合資料型別 一 序列型別 具有先後關係的一組元素 元素型別可以不同 元素間由序號引導,通過下標訪問序列的特定元素 正向遞增和反向遞減兩種定義方法 真正建立乙個列表,賦值僅傳遞引用 類似指標 序列型別通用操作符 x in s 如果x是序列s的元素,返回true,否則返回false x not in ...