Python內置數據結構
數值型
Int,float,complex,bool
序列對象
字符串:str ?列表:list ??數組:tuple
鍵值對
集合:set ???字典:dict
數值型
Int,float,complex,bool都是class,1,5.0,2+3j都是對象即示例
Int:python3的int就是長整形,且沒有大小限制,受限于內存區域的大小
Float:有整數部分和小數部分組成,實數和虛數組成,支持十進制和科學計數法組成,雙精度型。
Complex:有實數部分和虛數組成,實數和虛數都是由浮點數。3+4.2j
bool:int的子類,僅有2實例true,false對應1和0,可以和整數直接運算
類型轉換
Int(x)返回一個整數
Float(x)返回一個浮點數
Complex(x),Complex(x,y)返回一個復數
bool(x)返回布爾值,false等價的對象
數字的處理函數
round(),四舍六入取偶
floor()向下取整,ceil()向上取整
Int()取整數部分
//整除且向下取整
math.sqrt()開方
類型判斷
type(obj),返回類型,而不是字符串
Instance(obj,class_or_tuple),返回布爾值
列表list
一個隊列,一個排列整齊的隊伍
列表內的個體稱作元素,由若干元素組成列表
元素可以是 任意對象(數字,列表,字符串,對象等)
列表內元素有順序,可以使用索引
線性的數據結構
可以使用[]表示
列表是可變的
列表list 鏈表 queue stack的差異
列表可以插入
Queue不可以插入,只能開頭和結尾
Stack是覆蓋式的,后進先出
鏈表分散的鏈表可以隨機插入
列表索引訪問
索引,也叫下標
正索引:從左到右,從0開始,為列表中的每一個元素編號
負索引:從右到左,從負1開始
正負索引不可以超界,否則引發異常indexerror
為了理解方便,可以認為列表是從左到右排列的,左邊是頭部,右邊是尾部,左邊是下界右邊是上界
列表通過索引訪問
列表查詢
Index(value,[start,[stop]])
通過值value,從指定區間查找列表的元素是否匹配
匹配到第一個就立即返回索引
匹配不到就拋出異常valueerror
count(value)
返回列表中匹配的value次數
時間復雜度
Index和count方法都是O(n)
隨著列表數據規模的增大,而效率下降
如何返回元素列表的元素個數?如何遍歷?如何設計高效?
len()
列表元素修改
list[index] = value
索引不要超界
列表增加,插入元素
append(object)-> none
列表尾部追加元素,返回none
返回none就意味著沒有新的列表產生,就地修改
時間復雜度O(1)
Insert(index,pbject)->none
從索引處插入,需要移動位置時間復雜度較高不常用
超越上界,尾部追加。超越下界尾部追加
Extend(iteratale) – > none
將可迭代對象的元素最加進來,返回none
就地修改
+ ->list
鏈接操作,將兩個列表鏈接起來
產生新的列表,源列表不變
本質上是調用的_add_()方法
* ?-list
重復操作,將本列表元素重復n次,返回新的列表
列表刪除元素,插入元素
remove() -> none
從左到右查找第一個匹配的value的值,移除該元素,返回none
就地修改
效率不高O(n)
pop([index]) -> item
不指定索引的index,就從列表尾部彈出一個元素
指定索引index,就從索引處彈出一個元素,索引超界拋出indexerror錯誤
時間復雜度O()
clear() -> none
清除列表的所有的元素,剩下一個空列表
列表的其他操作
reversed() -> none
將列表元素反轉,返回none
就地修改
sort(key=none,reverse=false) -> none
對列表元素進行排序,就地修改,默認升序
reverse為true,反轉,降序
key一個函數,指定key如何排序
In
[3,4]in[1,2,[3,4]]
For x in [1,2,3,4]
?
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/92950