知識框架圖
學習筆記
數據結構分類
數值
int、float、complex、bool都是class
int:長整型,沒有上限,取決于內存區域大小
float:支持十進制和科學計數法,僅支持雙精度
complex:復數,有實數和虛數部分
bool:int的子類,True、False對應1、0,可以和整數直接運算
序列對象
字符串str
列表list
元組tuple
鍵值對
集合set
字典dict
類型轉換
int(x):取整數部分
float(x):返回浮點數
complex(x)、complex(x、y):返回復數
bool(x):返回bool值
數字處理函數
round():四舍六入五取偶
.5:整數部分為偶數,向下取整;整數部分為奇數,向上取整
math模塊,floor():向下取整
math模塊,ceil():向上取整
x//y:x/y結果向下取整
min()
max()
pow(x,y):x**y
math.sqrt():開方
進制轉換,返回字符串
bin()
oct()
hex()
math.pi π
math.e 自然常數
類型判斷
type(obj):返回值為類型,而不是字符串
obj為不同類型相加時,做隱式類型轉換
isinstance(obj,class_or_tuple):返回bool值
列表
隊列
列表內的個體稱為元素,有若干元素組成列表
元素可以是任意對象(數字、字符串、對象、列表),對象為列表時稱為嵌套列表
列表內元素有順序,可以使用索引
列表是線性的數據結構
使用[ ]表示
列表是可變的
各種數據結構的特點和差異
列表list:線性編址、內存上連續的地址空間;可迭代、可索引;可變的;允許在中間插入
鏈表:散落,手拉手,指針
隊列queue:線性編址;不允許在中間插入;先進先出
棧stack:后進先出
列表操作
初始化定義
list():定義新的空列表
list(iteratable):使用可迭代對象初始化列表
列表不能一開始就定義大小
索引訪問
索引,下標
正索引,從左至右,從0開始
負索引,從右至左,從-1開始
索引不能超界,否則引發IndexError
list[index]:使用索引訪問列表中的元素
列表查詢
index(value,[start,[stop]])
在指定區間查找與value匹配的元素
匹配第一個立即返回索引,匹配不到拋出ValueError異常
只能從左向右查找,不能使用負索引
時間復雜度O(n)
count(value)
返回列表中匹配value的次數
時間復雜度O(n)
len(list):列表元素的個數
修改元素
list[index] = value,索引不能超界
增加、插入元素
append(obj)
在列表尾部追加元素,返回None,不產生新的列表,就地修改
時間復雜度O(1)
insert(index,obj)
在指定index處插入元素obj,返回None,不產生新的列表,就地修改
時間復雜度O(n)
index超出上界或下界則在尾部或頭部追加
extend(iteratable)
將可迭代對象追加到列表中,返回None,不產生新的列表,就地修改
+
連接操作,將兩個列表連接起來,產生新的列表,原列表不改變
本質上是調用_add_()方法
*
重復操作,將本列表元素重復n次,返回新的列表
復雜類型或引用類型:列表中再嵌套列表,使用*重復操作時,實際只是復制了內層元素的內存地址指向,結果是所有元素都指向同一內存地址,在這種情況下,修改任意內層元素,其他元素也會跟著改變
刪除元素
remove(value)
從左至右查找第一個匹配value的值,移除該元素,返回None,就地修改
時間復雜度O(n)
pop([index])
不指定index,則從尾部彈出一個元素
指定index,則將index處元素彈出,索引超界IndexError錯誤
clear()
清空列表中的所有元素,留下空列表
其他操作
reverse()
將列表元素反轉,返回None,就地修改
in
判斷列表的從屬關系或在指定列表中迭代
sort(key=None,reverse=False)
對列表元素進行排序,就地修改,默認升序
reverse為True則降序排列
key為函數,指定kay如何排序
sorted(iterable[, key][, reverse])
生成新的列表,不修改原有列表
列表復制
shadow copy
淺拷貝,影子拷貝,遇到引用類型時只是復制內存地址
deepcopy
深拷貝,遇到引用類型時將內存地址指向位置的內容原樣復制
隨機數
random
randint(a,b):返回[a,b]之間的整數
choice(seq):從非空序列中隨機返回一個元素
randrange([start,] stop [,step]):從指定范圍內返回一個隨機數
shuffle(list):就地打亂列表元素
sample(m,n):從列表m中隨機返回n個不同元素
原創文章,作者:ZBD20,如若轉載,請注明出處:http://www.www58058.com/93132