1. 程式人生 > >我的python之路(四):列表

我的python之路(四):列表

mage cycle 之間 信息 索引 網站 告訴 tor 提取

1、列表是什麽

列表是由一系列按照特定順序排列的元素組成,它可以創建包含字母表中的所有字母、數字0-9或所有家庭成員姓名的列表;也可以將任何東西加入列表中,其中的元素之間可以沒有任何關系。鑒於列表通常包含多個元素,所以可以給列表表示一個復數的名稱,比如:letters,digits,names等。

在Python中,用方括號([ ])來表示列表,並用逗號來分隔其中的元素。

2、訪問列表元素

列表是有序集合,因此要訪問列表中的任何元素,只需將該元素的位置或索引告訴Python即可。要訪問列表元素,可指出列表的名稱,再指出元素的索引,並將其放在方括號內。

例如,下面的代碼從列表bicycles中提取第一款自行車:

技術分享圖片

技術分享圖片

還可以利用方法.title()是之首字母變為大寫:

技術分享圖片

要註意的是,索引從0開始,而不是從1開始。在Python中,第一個列表元素的索引為0,而不是1,在大多數編程語言中都是如此,這與列表操作的底層實現相關。

另外Python為訪問最後一個列表元素提供了一種特殊語法,通過將索引指定為-1,可讓Python返回最後一個列表元素。這個語法很有用,因為我們經常需要在不知道列表長度的情況下訪問最後的元素。而且這種約定也適用於其他負數索引,例如,索引-2返回倒數第二個列表元素,索引-3返回倒數第三個列表元素,以此類推。

可像使用其他變量一樣使用列表中的各個值,例如,我們可以使用拼接根據列表中的值來創建消息。例如:

技術分享圖片

技術分享圖片

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

我們創建的大多數列表都將是動態的,這意味著列表創建後,將隨著程序的運行增刪元素。比如:創建一個遊戲,要求玩家射殺從天而降的外星人;為此,可在開始時將一些外星人存儲在列表中,然後每當有外星人被射殺時,都將其從列表中刪除,而每次有新的外星人出現在屏幕上時,都將其添加到列表中。在整個遊戲運行期間,外星人列表的長度將不斷變化。

  • 修改列表元素

修改列表元素的語法與訪問列表元素的語法類似,要修改列表元素,可指定列表名和要修改的元素的索引,再指定該元素的新值。例如:

技術分享圖片

技術分享圖片

  • 添加列表元素

1、在列表末尾添加元素

可利用。append()函數,例如:

技術分享圖片

利用append()也可以動態地創建一個列表,比如,我們先創建一個空列表,再使用一系列的append()語句添加元素。下面來創建一個空列表,再在其中添加元素。

技術分享圖片

2、在列表中插入元素

使用方法insert()可在列表的任何位置添加新元素,所以,需要指定新元素的索引和值:

技術分享圖片

技術分享圖片

  • 刪除列表元素

我們經常需要從列表中刪除一個或多個元素,例如,玩家將空中的一個外星人射殺後,我們可能要將其從存活的外星人列表中刪除;當用戶在我們創建的web應用中註銷其賬戶時,我們需要將該用戶從活躍用戶列表中刪除。我們可以根據位置或值來刪除列表中的元素。

1、使用del語句刪除元素

如果知道要刪除的元素在列表中的位置,我們可以使用del語句:

技術分享圖片

技術分享圖片

2、使用方法pop()刪除元素

有時候,我們要將元素從列表中刪除,並接著使用它的值。例如:我們可能需要獲取剛被射殺的外星人x與y的坐標,以便在相應的位置顯示爆炸效果;在web應用程序中,我們可能要將用戶從活躍成員列表中刪除,並將其加入到非活躍成員列表中。

方法pop()可刪除列表中末尾的元素,並讓我們能夠接著使用它:

技術分享圖片

技術分享圖片

可以使用方法pop()打印一條消息,指出最後購買的是哪款摩托車:

技術分享圖片

技術分享圖片

3、彈出列表中任何位置處的元素

可以使用pop()來刪除列表中任何位置的元素,只需要在pop()的括號中指定要刪除元素的索引即可:

技術分享圖片

技術分享圖片

註意:以上motorcycles.pop(0)是被彈出去的那個元素,而不是彈出元素後剩下的那個列表;每當使用pop()時,被彈出的元素就不在列表中了。

如果我們要刪除一個元素,且不再以任何方式使用它,就是用del語句;如果我們要在刪除元素後繼續使用它,就使用方法pop()。

4、根據值刪除元素

有時候,我們不知道要在列表中刪除的值所處的位置,只知道要刪除的元素的值,可以使用方法remove()。

例如,假設我們要在列表motorcycles中刪除值‘ducati‘,使用remove語句:

技術分享圖片

技術分享圖片

另外,使用remove()從列表中刪除元素時,也可以接著使用它的值。

4、組織列表

在我們創建的列表中,元素的排列順序常常是無法預測的,因為我們不能控制用戶提供數據的順序,雖然這在大多數情況下是無法避免的,但我們經常需要以特定的順序呈現信息。有時候,我們希望保留列表元素最初的排列順序,而有時候又需要調整排列順序。

  • 使用方法sort()對列表進行永久性排序

例如,用sort()將一個汽車列表按照汽車的字母順序排列,為簡化這項任務,我們假設該列表中的所有值都是小寫的。

技術分享圖片

技術分享圖片

現在,汽車是按照字母順序排列的,而且再也無法回復到原來的排列順序。

我們也可以按照與字母順序相反的順序排列,為此只需要向sort()方法傳遞參數reverse=True,比如:

技術分享圖片技術分享圖片

  • 使用函數sorted()對列表進行臨時排序

如果我們要保留列表元素原來的排列順序,同時以特定的順序去呈現他們,可以使用 sorted()。函數sorted()讓我們能夠按特定的順序排列顯示列表元素,同時也不影響他們在列表中的原始排列順序。

技術分享圖片

技術分享圖片

註意:調用函數sorted()後,列表元素的排列順序並沒有改變,如果要按與字母順序相反的順序顯示列表,也可以向函數sorted()傳遞參數reverse=True.

  • 倒著打印列表

要反轉列表元素的排列順序,可使用方法reverse(),假設汽車列表是按購買時間排列的,可輕松地按相反的順序排列其中的汽車。

技術分享圖片

方法reverse()不是指按與字母順序相反的順序排列列表元素,而只是反轉列表元素的排列順序,它永久性地修改列表元素的排列順序,但可以隨時恢復到原來的排列順序,只需對列表再次調用reverse()即可。

  • 確定列表的長度

使用函數len()可快速獲悉列表的長度:

技術分享圖片

有時候冷len()很有用:確定還有多少個外星人未被射殺,需要管理多少項可視化數據,網站有多少註冊用戶等。

5、使用列表時避免索引錯誤

開始使用列表時,經常會遇到一種錯誤。假設你有一個包含三個元素的列表,卻要求獲取第四個元素。就會出現索引錯誤。

我的python之路(四):列表