Python內置數據結構

Python內置數據結構

數值型

Int,floatcomplex,bool

序列對象

字符串:str ?列表:list ??數組:tuple

鍵值對

集合:set ???字典:dict

數值型

Int,float,complexbool都是class,1,5.02+3j都是對象即示例

Intpython3int就是長整形,且沒有大小限制,受限于內存區域的大小

Float:有整數部分和小數部分組成,實數和虛數組成,支持十進制和科學計數法組成,雙精度型。

Complex:有實數部分和虛數組成,實數和虛數都是由浮點數。3+4.2j

bool:int的子類,僅有2實例truefalse對應10,可以和整數直接運算

類型轉換

Int(x)返回一個整數

Float(x)返回一個浮點數

Complex(x),Complex(xy)返回一個復數

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

對列表元素進行排序,就地修改,默認升序

reversetrue,反轉,降序

key一個函數,指定key如何排序

In

[3,4]in[1,2,[3,4]]

For x in [1,2,3,4]

?

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/92950

(0)
zhangmengzhangmeng
上一篇 2018-03-26
下一篇 2018-03-26

相關推薦

  • Linux 6.8系統安裝操作過程

      首先按照好vmware 虛擬機,安裝過程忽略。       虛擬機新建完畢后,在虛擬機設置框中,選擇硬件cd/dvd,右側勾選使用iso磁盤文件,點擊瀏覽,選擇所需鏡像文件,點擊確定按鈕。      然后,單擊啟動虛擬機   &nbsp…

    2017-05-21
  • Linux的文本處理工具及grep正則表達式的使用

    文本處理工具及grep正則表達式的使用 本章節學習的內容: 1、各種文本工具來查看、分析、統計文本文件 2、grep正則表達式 3、擴展正則表達式 一、抽取文本的工具: 1、按文件內容:less和cat 2、按文件截?。篽ead和tail 3、按列抽?。篶ut 4、按關鍵字抽?。篻rep 二、文件查看命令:cat, tac,rev 1、命令cat: (1)文…

    Linux干貨 2016-08-05
  • 自制linux和內核編譯

    自制linux和內核編譯 1、分區并創建文件系統 fdisk /dev/sdb分兩個必要的分區/dev/sdb1對應/boot /dev/sdb2對應根/mkfs.ext4 /dev/sdb1mkfs.ext4 /dev/sdb2 2、掛載boot mkdir/mnt/bootmount /dev/sdb1 /mnt/boot 3、安裝grub grub-i…

    Linux干貨 2016-09-16
  • vim的使用

    本文主要講述vim的使用 一.vim是什么? vim是一個十分著名也十分強大的編輯器,是vi的增強版,是一個模式化的編輯器,英文名稱為 Visual Interface iMprove,在2000年2月Vim贏得了Slashdot Beanie的最佳開放源代碼文本編輯器的美稱。 二.vim的工作模式  (1)編輯模式:也叫命令模式,通過編輯命令實現…

    Linux干貨 2016-10-29
  • sed之高級命令的解析

                sed工作機制中另一個邏輯空間用于作為模式空間的好幫手,就是叫保持空間(hold space),在模式空間中處理一行內容會繼續處理下一行,那么對于處理過的行可能還有其他處理,因此可以先把處理好的數據存放在hold s…

    Linux干貨 2016-08-08
欧美性久久久久