官术网_书友最值得收藏!

2.7 列表

列表(List)是Python中使用最頻繁的數據類型。它由一系列按特定順序排列的元素組成。它的元素可以是字符、數字、字符串甚至可以包含列表(即嵌套)。在Python中,用方括號([])來表示列表,并用逗號(,)來分隔其中的元素。

2.7.1 列表的創建和刪除

1.使用賦值運算符直接創建列表

同Python的變量一樣,創建列表時,可以使用賦值運算符“=”直接將一個列表賦值給變量,如下所示。

代碼中,classmates就是一個列表。列表的名稱通常用各一個復數的名稱。另外,Python對列表中的元素和個數沒有限制,如下所示也是一個合法的列表。

另外,一個列表的元素還可以包含另一個列表,如下所示。

2.創建空列表

在Python中,也可以創建空的列表,如下所示的students即為一個空列表。

3.創建數值列表

在Python中,數值列表很常用。可以使用list()函數直接將range()函數循環出來的結果轉換為列表,如下所示。

上面代碼運行后的結果如下。

4.刪除列表

對于已經創建的列表,可以使用del語句將其刪除,如下所示為刪除之前創建的classmates列表。

2.7.2 訪問列表元素

1.通過指定索引訪問元素

列表中的元素是從0開始索引的,即第1個元素的索引為0,第二個元素的索引為1。如下所示為訪問列表的第一個元素。

上述代碼中classmates[0]表示第1個元素,如果要訪問列表第2個元素,應該將程序第2句修改為“print(classmates[1])”。注意列表的索引從0開始,所以第2個元素的索引就是1,而不是2。如果要訪問列表最后一個元素,可以使用一個特殊語法“print(classmates[-1])”來實現。上述代碼的輸出結果如下。

可以看到輸出了列表的第1個元素,并且不包括方括號和引號。這就是訪問列表元素的方法。

2.通過指定兩個索引訪問元素

如下所示為指定兩個索引作為邊界來訪問元素。

[0:3]說明指定了第1個索引是列表的第1個元素;第2個索引是列表的第4個元素,但第2個索引不包含在切片內,所以輸出了列表的第1~3個元素。

3.只指定第1個索引來訪問元素

如下所示只指定第1個索引作為邊界來訪問元素。

[2:]說明指定了第1個索引是列表的第3個元素;沒有指定第2個索引,那么Python會一直提取到列表末尾的元素,所以輸出了列表的第3~6個元素。

4.只指定第2個索引來訪問元素

如下所示只指定第2個索引作為邊界來訪問元素。

[:4]說明沒有指定第1個索引,那么Python會從頭開始提取;第2個索引是列表的第5個元素(不包含在切片內),所以輸出了列表的第1~4個元素。

5.指定列表倒數元素索引來訪問元素

如下所示只指定列表倒數元素的索引作為邊界來訪問元素。

[-3:]說明指定了第1個索引是列表的倒數第3個元素;沒有指定第2個索引,那么Python會一直提取到列表末尾的元素,所以輸出了列表的最后3個元素。

案例13:畫五彩圓環

在IDLE中創建一個名為“圓環.py”的文件,然后在文件中導入turtle模塊,創建一個顏色的列表,之后遍歷range()生成的一個整數序列,然后每次循環時分別設定畫筆顏色、圓的半徑、畫筆旋轉角度,即可畫出很多圓環,代碼如下。

代碼中“colors[x%4]”的意思是從colors列表中取一個元素(比如red)作為參數。x%4中的%是求余數的符號,x%4的意思是用x除以4得到的余數。如果x的值為5,則求得的余數為1。然后執行colors[1],從列表colors中取第2個元素“yellow”作為畫筆顏色的參數。

運行結果如下。

2.7.3 添加、修改和刪除列表元素

1.添加列表元素

向列表中添加元素可以使用append()函數來實現,如下所示。

輸出結果如下所示。

從輸出結果可以看出,使用append()可以將元素“Mack”添加到列表的末尾。

還可以使用insert()函數向列表中插入元素,如下所示。

上述代碼中“insert()”函數參數中的1表示插到列表的第2個元素,“'Mack '”表示要插入的元素。

另外,還可以使用extend()函數將一個列表添加到另一個列表中,如下所示。

2.修改元素

修改列表中的元素只需通過索引獲得該元素,然后再為其重新賦值即可。如下所示為將列表中的第2個元素修改為“Mack”。

3.刪除元素

刪除元素主要有兩種方法:一種根據索引刪除元素,另一種是根據元素值進行刪除。如下所示為根據索引刪除列表元素。

上述代碼通過del來刪除列表元素,另外,還可以通過pop()函數來刪除列表元素,如下所示。

如下所示為根據元素值刪除列表元素。

2.7.4 對列表進行統計和計算

Python的列表提供了一些內置的函數來實現統計、計算功能。

1.獲取列表的長度

如下所示為通過len()函數來獲得列表的長度(即列表中元素的個數)

len()函數用處是很廣泛的,比如統計網站注冊用戶數、確定游戲被射殺的敵人等。

2.獲取指定元素出現的次數

使用列表對象的count()函數可以獲取指定元素在列表中出現的次數。如下所示。

3.獲取指定元素首次出現的位置

使用列表對象的index()函數可以獲取指定元素在列表中首次出現的位置(即索引)。如下所示。

4.統計數值列表的元素和

使用列表對象的sum函數可以統計數值列表各元素的和。如下所示。

2.7.5 列表的復制

要復制一個列表,可以創建一個包含整個列表的切片,方法是同時省略起始索引和終止索引,即[:]。如下所示。

上述代碼中從列表letters中提取了一個切片,創建了一個列表的副本,再將該副本存儲到變量b中。

注意,這里是創建了一個列表的副本,而不是將letters賦給b(b=letters是賦給)。它們是有區別的。如下所示為復制列表。

上述代碼運行的結果如下。

如下所示為將letters賦給b的情況。

上述代碼運行的結果如下。

2.7.6 遍歷列表

遍歷列表中的所有元素是常用的一種操作,在遍歷的過程中可以完成查詢、處理等功能。

1.使用for循環輸出列表元素

可以使用for循環來遍歷列表,可以依次輸出列表的每個元素。如下所示為遍歷列表。

上述代碼運行后的結果如下所示。

每循環一次輸出一個列表中的元素。

2.輸出列表元素的索引值和元素

可以使用for循環和enumerate()遍歷列表,可以實現同時輸出索引值和元素內容,如下所示為遍歷classmates列表。

上述代碼運行后的結果如下所示。

案例14:分離紅球和藍球

在IDLE中創建一個名為“分球.py”的文件,然后在文件中創建一個紅球和藍球的列表,再定義兩個空列表,接著遍歷紅藍球的列表,判斷遍歷時每個元素是否為紅球,如果是,則加入紅球的列表,如果不是,加入藍球的列表,最后分別輸出存放紅球和藍球的列表,代碼如下。

運行結果如下。

主站蜘蛛池模板: 尼玛县| 孟津县| 泾源县| 兰西县| 岢岚县| 玉门市| 淅川县| 樟树市| 丰镇市| 青川县| 阳城县| 江山市| 武陟县| 兴仁县| 镇宁| 密山市| 磴口县| 通州区| 石景山区| 宜兴市| 达拉特旗| 霞浦县| 元朗区| 鸡东县| 金阳县| 怀宁县| 榆中县| 平原县| 股票| 应城市| 天祝| 淳安县| 都兰县| 邮箱| 花垣县| 隆德县| 特克斯县| 奉新县| 河北区| 本溪| 雷波县|