一、概述
計算機不僅僅要對單個變量表示的數據進行處理,還需要對一組數據進行批量處理。如:
給定一組單詞{python,data,function,list,loop},計算並輸出每個單詞的長度。
給定一個學院學生的信息,統計男女生比例
數字類型、浮點數類型和復數類型;這些類型僅能表示一個數據,這種表示單一數據的類型稱為基本數據類型。組合數據類型能將多個類型同類型或不同類型的數據組織起來,通過單一的表示使數據操作更有序、更容易。根據數據之間的關系,組合數據類型可以分為三類:序列類型、集合類型和映射類型
序列類型:是一個元素向量,元素之間存在先后關系,通過序號訪問,元素之間不排他。
集合類型:是一個元素集合,元素之間無序,相同元素在集合中唯一存在。
映射類型:是鍵—值數據項的組合,每個元素是一個鍵值對,表示為(key,value)
二、序列類型
1.簡介
序列類型是一維元素向量,元素之間存在先后關系,通過序號訪問。由於元素之間存在順序關系,所以序列中可以存在數值相同但位置不同的元素。序列類型支持成員關系操作符in、長度計算函數len()、分片[]以及元素本身也可以是序列類型。序列類型有str(字符串)、tuple(元組)、list(列表)等。
字符str可以看成是單一字符的有序組合,由於字符串類型十分常用且單一字符串只表達一個含義,也被看做是基本數據類型。元組tuple是包含0個或多個數據項的不可變序列類型,並且元組生成后
是固定的,其中的任何數據項不可替換或者刪除。列表list是一個可以修改的數據項序列類型。但無論是哪種,只要是序列類型,都可以使用相同的索引體系,即正向遞增序號和反向遞減序號。
2.序列類型的通用操作符和函數
x in s 如果x是s的元素,返回True,否則返回False
x not in s 如果x不是s的元素,返回True,否則返回False
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為步數的子序列
len(s) 序列s的元素個數(長度)
min(s) 序列s中的最小元素
max(s) 序列s中的最大元素
s.index(x[,i[,j]]) 序列s中從i開始到j位置中第一次出現元素x的位置
s.count(x) 序列s中出現x的總次數
(1)元組是序列類型中比較特殊的類型,因為它一旦創建就不能被修改。元組類型在表達固定數據項、函數多返回值、多變量同步賦值、循環遍歷等情況下十便利。
Python中元組采用逗號和圓括號來表示。
如下:
生成元組只需要使用逗號將元素隔離開即可。例如上面的元組creature,也可以增加圓括號,但圓括號在不混淆語義的情況下不是必須的。一個元組可以作為另一個元組的元素,
並且可以采用多級索引來獲取信息。
元組的函數多返回值、多變量同步賦值、循環遍歷:
(2)列表是包含0個或者多個對象引用的有序序列,屬於序列類型。
與元組不同,列表的長度和內容都可變,可以自由的對列表中的數據項進行增加、刪除或者替換。列表沒有長度限制,元素類型也可以不同。由於列表類型屬於序列類型,所以列表也支持成員關系操作符in、長度len()以及分片[]等操作。列表可以同時使用正向遞增序號何反向遞減序號,也可以采用標准的比較操作符(</<=/==/!=/>=/>)進行比較,列表比較其實是單個數據項的逐個比較。
列表用中括號[]表示,也可以通過list()函數將元組或字符串轉化成列表。直接使用list()函會返回一個空列表。
如下:
列表類型特有的函數方法操作:
ls[i]=x 替換列表ls第i項數據為x
ls[i:j]=lt 用列表lt替換列表ls中第i到第j項數據(不包含第j項,下同)
ls[i:j:k]=lt 用列表lt替換列表ls中第i到第j項以k為步長的數據
del ls[i:j] 刪除列表ls第i到第j項數據。等價於ls[i:j]=[]
del ls[i:j:k] 刪除列表ls第i到第j項以k為步長的數據
ls+=lt或ls.extend(lt) 將列表lt元素增加到列表ls中
ls*=n 更新列表ls,其元素重復n次
ls.append(x) 在列表ls最后增加一個元素x
ls.clear() 刪除ls中所有的元素
ls.copy() 生成一個新列表,復制ls中的所有元素
ls.insert(i,x) 在列表第i的位置新增插入元素x
ls.pop(i) 將列表ls中第i項元素取出並刪除該元素
ls.remove(x) 將列表ls中出現的第一個元素x刪除
ls.reserve() 列表ls中的元素反轉
當使用一個列表改變另一個列表時,Python不要求兩個列表長度一樣,但遵循“多增少減”的原則
如下:
三、集合類型
1.簡介
集合類型與數學中的集合一致,即包含0個或多個數據項的無序組合。集合中的元素不可重復,元素類型只能是固定數據類型,例如整數、浮點數、字符串以及元組等。
列表、字典以及集合類型本身都是可變數據類型,不能作為集合元素出現,能夠進行哈希運算的類型都可以作為集合的元素。另外,Python提供了一種同名的具體數據類型——集合(set)。
由於集合是無序組合,它沒有索引和位置的概念,也沒有分片的功能,但集合中的元素可以動態的增刪。集合用大括號{}表示,可以用復制語句生成一個集合。
如下:
set(x)函數可以生成集合,輸入的參數可以是任何組合數據類型,返回的結果是一個無重復且排序任意的集合。
如下:
2.集合類型的操作函數
S.add(x) 如果數據項x不在集合S中,將x增加到S中
S.clear() 移除S中的所有數據
S.copy() 返回集合S的一個副本
S.pop() 隨機返回集合S中的一個元素,如果S為空,產生KeyError異常
S.diacard(x) 如果x在集合S中,移除該元素,如果x不存在,不報錯
S.remove(x) 如果x在集合S中,移除該元素,如果x不在,產生KeyError錯誤
S.isdisjoint(T) 如果幾何S和集合T沒有相同的元素,返回True
len(S) 返回集合S的個數
x in S 如果x是集合S中的元素,返回True,否則返回False
x not in S 如果x不在集合S中,返回True,否則返回False
四、映射類型
1.簡介
映射類型是“鍵—值”的數據項的組合,每個元素是一個鍵值對,即元素是(key,value),元素之間是無序的,鍵值對(key,value)是一種二元關系。
鍵和值通過冒號連接,不同鍵值對通過逗號隔開。字典是集合類型的延續,所以各個元素並沒有順序之分。鍵和值可以是任意數據類型,包括程序自定義的類型。
2.字典類型的操作
(1)使用大括號可以創建字典,並制定初始值,通過括號可以增加新元素。
(2)可以直接使用大括號{}創建一個空字典,通過[]向其中增加元素。
(3)盡管集合類型也用大括號{}表示,但是生成一個空集合需要借助set()函數,直接使用{}是生成字典。
3.字典類型的函數和方法
<d>.keys() 返回所有的鍵信息
<d>.values() 返回所有的值信息
<d>.items() 返回所有的鍵值對
<d>.get(<key>,<default>) 鍵存在則返回相應值,否則返回默認值
<d>.pop(<key>,<default>) 鍵存在則返回相應值,同時刪除鍵值對,否則返回默認值
<d>.popitem() 隨機從字典中取出一個鍵值對,以元組(key,value)形式返回
<d>.clear() 刪除所有的鍵值對
del<d>[<key>] 刪除字典中某一個鍵值對
<key>in<d> 如果鍵在字典中則返回True,否則返回False
僅用於Python學習筆記