Python3 自學第5天:列表list

Python3 自學第5天:列表list

在開始之前我們先了解一下序列(sequence):

序列中的元素都是有序的,其實在前面“極客乾貨”已經分享過一種序列了,那就是字符串《 》

Python總共有6個內置的序列,即列表、元組、字符串、Unicode字符串、buffer對象和 xrange 對象。

序列的操作包括:索引、長度、切片、遍歷、組合(序列相加)、檢查成員、重複(乘法)、最小值和最大值。

今天我們瞭解下數據類型中的列表list,是Python中最常用的序列之一。

使用方括號[ ]來創建列表,元素item間用逗號(,)隔開;實例代碼:

Python3 自學第5天:列表list

從上面的實例我們可以看出,list中的元素item可以是不同類型的對象;還可以看出上面的list在定義時字符串元素item使用了單/雙引號,輸出結果時Python解釋器默認用單引號表示字符串元素,我們自己在定義字符串元素時可以借鑑一下。

list 索引和切片:

列表的索引和切片與前面講的字符串索引是相同的, [頭下標:尾下標) list切片遵循“左閉右開”原則,也叫“包左不包右”。實例代碼:

Python3 自學第5天:列表list

合理的使用負索引進行訪問和切片,可以提高檢索list的效率。對正負索引和切片的概念不清楚的地方,可以瞭解下《 》。

列表拼接,拼接後會產生一個新列表。實例代碼:

Python3 自學第5天:列表list

注意: += 操作符是把b列表中每個元素拼接到了a列表元素的後面。

使用list.append()追加元素,和+=操作符是有區別的,實例代碼:

Python3 自學第5天:列表list

可以看出,append(obj) 參數整體作為一個元素被追回到b列表最後一位,這就是下面要講的嵌套。

list 嵌套

在前面剛才提到了list中的元素可以是不同的數據類型對象;實例代碼:

Python3 自學第5天:列表list

說明:

list_a[-1]:取出a列表最後一位元素,它是list類型;

list_a[-1][-1]:取出a列表最後一個元素中的最後一個元素。

Python內置函數

Python3 自學第5天:列表list

用 in 判斷是否存在於列表中

Python3 自學第5天:列表list

列表推導式:這個很重要也比較常用,格式如下:

[表達式 for 變量 in 可迭代對象]

[表達式 for 變量 in 可迭代對象 if 條件]
Python3 自學第5天:列表list

list 常用的幾個方法

Python3 自學第5天:列表list

Python3 自學第5天:列表list

Python3 自學第5天:列表list

注意了,上面list.sort()只針對元素類型相同的列表進行排序,不同類型元素的列表進行排序是會報錯的;實例代碼:

Python3 自學第5天:列表list

總結一下sort與sorted區別:

sort是list自身的方法;sorted是Python內置函數,可以對所有可迭代的對象進行排序操作。

list的sort方法改變的是原列表中元素的順序,而內置函數sorted返回的是一個新的list,原列表保持不變。

Python3 自學第5天:列表list

總結一下上面的列表複製:

id() 獲取對象的內存地址,這樣 = 和 copy()兩者的區別就明顯了;

使用=是引用賦值,兩個對象指向同一塊內存地址,變更其中一個另外一個也會跟著變;

copy()是複製一個副本,原對象和新複製的對象互不影響。

Python3 自學第5天:列表list

del語句刪除一個或者多個對象的引用(引用可以理解為給對象貼的標籤),而不是刪除內存中的對象(value);

當某個對象的所有引用都被刪除後(對象的所有標籤被撕完後),會自動執行魔法方法__del__將這個對象作為垃圾回收掉。實例代碼:

Python3 自學第5天:列表list

OK!Python數據類型裡的列表list就分享到這裡,如果您有什麼問題,請在評論區留言,我會及時回覆,感謝!

上一篇:

下一篇:

【極客乾貨】從事IT行業十餘年,在移動互聯網開發,J2EE企業級開發,IOT物聯網,AI人工智能等方面有點技術積累,熟練使用C/C++,Java,Python等編程語言。從2009年開始接觸Python,後續借空閒時間將個人熟悉的技術乾貨系統性分享給大家,也許我的分享會讓你少走一些彎路,如果您覺得還可以,請多多關注,評論和轉發,非常感謝!


分享到:


相關文章: