Python內置數據結構——列表

知識框架圖

Python內置數據結構——列表

學習筆記

數據結構分類

數值

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

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

相關推薦

  • python內置數據結構

    python內置數據結構 sort(key=none,resverse=false)—>none 對列表元素進行排序,就地修改。默認升序 resvers為true,反轉,降序 key為一個函數,指定key如何排序 ls.sort(key=functionaame) Print(lst.sort(key=str,reverse=Ture) I…

    Python筆記 2018-03-31
  • Python 部分知識點總結(二)

    此篇博客只是記錄第四周未掌握或不熟悉的知識點,用來加深印象。

    Python筆記 2018-03-30
  • python中 ‘is’ 和 ‘==’ 區別

    id –> 唯一身份標識符,?is比較的是id, ==比較的是value?

    2018-04-16
  • Centtos7搭建ftp服務

    Centtos7搭建ftp服務 下載安裝軟件包 yum -y install vsftpd ? 開啟啟用ftp服務 systemctl start vsftpd ???#設置立即啟用該服務 systemctl status vsftpd ??#查看該服務當前運行狀態 systemctl enable vsftpd ??#設置開機自動啟用該服務 systemc…

    Python筆記 2018-07-07
  • functools模塊,偏函數partial、緩存LRU

    functools模塊,偏函數partial、緩存LRU

    2018-04-23
  • Linux介紹

    Linux介紹 Linux概述 Linux概述 Linux內核由芬蘭人Linus Torvalds 1991年根據386架構開發。Linux是系統的內核并非系統,之后的RED HALT 、Centos等都是以Linux為內核的類UNIX操作系統。 1969年UNIX系統由THOMPSON和D.M.Riche在美國貝爾實驗室開發 1990年芬蘭人Linus T…

    Python筆記 2018-03-26
欧美性久久久久