類型轉換
int(x):返回一個整數
float(x):返回一個浮點數
complex(x):返回一個復數
bool(x):返回布爾值
數字處理函數
round():四舍六入,5湊偶,意思:小數點后面小于4的值舍掉,大于6的向前進一位,如果小數點后面是5,后面有有效數字,向前進一,如果沒有有效數字,離他最近最近的那個數如果是偶數,舍掉,如果是奇數向前進一位
math模塊、floor()、ceil()? ???? ??? ?? ? floor():向下取整,ceil():向上取整
//:整除,向下取整
min():取最小值
max():取最大值
pow(x,y)? x**y
math.sqrt():平方根
進制函數,返回值是字符串
bin()
oct()
hex()
類型判斷
type():返回的是類型,而不是字符串,包含隱式轉換
isinstance(obj.class_or_tuple):返回布爾型,判斷obj是不是屬于class或者tuple
列表
列表內的元素有順序,可以使用索引
是線性的數據結構
使用[]表示
列表可以在任何位置進行數據的提取
列表是可變類型的
queue:隊列
隊列是線性的數據結構,但是它只能在首部和尾部進行拿取數取數據,可以是先進先出,也可以是后進先出
鏈表
類似手拉手的類型,它的元素在內存中是隨機排列的,一個元素可以知道下一個元素的地址
stack:
類似疊盤子的模型,它是后進先出
列表的定義以及初始化
list():定義一個空的列表
list():括號里面可一個是一個可迭代對象
列表不用定義大小
lst=list():定義一個空的列表
lst=[]
lst=list(range(5))
?
列表的索引訪問
正索引:從左至右,索引從0開始
負索引:從右至左,索引從-1開始
正負索引都不可以越界,負責會引起indexErrors
列表通過索引進行訪問
list[index]
列表的查詢
index(value,[start,stop]):
通過列表內的元素值value來進行查找索引值,其時間復雜度為O(n),
count(value)
返回列表中匹配value的次數,時間復雜度是O(n)
隨著列表的數據量變大,而效率下降
len():可以返回列表元素的個數
列表元素的修改:
通過索引進行修改,list[index]=value
索引不要越界
列表元素的增加,插入元素
append(object),時間復雜度是O(1)
insert(index,object):在指定索引index插入元素object,時間復雜度是O(n),如果索引超過上界,在尾部追加,超過下屆,在首部追加
extend(iteratable):將可迭代的元素追加至列表中,就地修改
+ :實現列表的鏈接操作,產生新的列表,原來的列表保持不變
*:實現列表的重復操作,將本列表元素重復n次,返回一個新的列表
列表*重復的坑:類似這樣的雙分支結構要注意
x=[[1,2,3]]*3
是將列表里面的引用計數重復了3次,實際上都指向同一個
x=[0][1]=200將列表所有元素都修改
[[1, 2, 3], [1, 2, 3], [1, 2, 3]]
x[0][1]=20
x
[[1, 20, 3], [1, 20, 3], [1, 20, 3]]
列表的刪除元素
remove(value) :從左至右查找到第一個匹配的value,移除該元素,時間復雜度是O(n),
pop([index]):不指定index會從尾部進行彈出元素,指定索引,就會在指定的索引出彈出一個元素,彈出的value可以付給一個變量
pop不加index是的時間復雜度是O(1),加index時間復雜度是O(n)
clear():清楚列表所有元素,剩下一個空列表,在清除的時候要考慮gc的影響
?
列表的其他操作:
reverse():
將列表的元素進行翻轉
sort(key=None,reverse=False):對列表的元素進行排序,默認是升序,reverse=True時升序,reverse=False是降序
其中key是一個函數,指定key如何進行排序
in:成員列表
for i in [list]
列表賦值
當將一個列表賦值給另一個列表,賦值的是引用地址,當一個列表發生修改時,另一個列表也會發生修改,類似兩個地址指向同一個對象
copy() ->list
?shadow copy返回一個新的列表
?是淺拷貝,遇到引用類型,只是復制了一個引用
列表的雙分支結構,復制的是一個引用
深拷貝:重新定義個引用地址和對象,與原來的沒有關系,修改其中一個并不會影響另一個
? ? copy提供了deepcopy
? ? import copy
? ? copy.deepcopy()
隨機數
random模塊
randint(a,b)返回[a,b]之間的整數
choice(seq)從非空序列隨機挑選一個元素
randrange([start,]stop[,step])從制定范圍,按照基數遞增的集合獲取一個隨機數
random.shuffle(list)->就地打亂列表元素
sample(population,k)從樣本空間中隨機選取k個元素,作為一個新的列表
?
?
?
?
?
?
?
?
?
?
?
?