Python程式設計:增刪改列表元素
為什麼要改動列表元素?
我們建立的大多數列表都將是動態的,這意味著列表建立後,將隨著程式的執行增刪元素。 例如,你建立一個遊戲,要求玩家射殺從天而降的外星人;為此,可在開始時將一些外星人儲存在列表中,然後每當有外星人被射殺時,都將其從列表中刪除,而每次有新的外星人出現在螢幕上時,都將其新增到列表中。在整個遊戲執行期間,外星人列表的長度將不斷變化。
修改列表元素
motorcycles = ['honda','yamaha','suzuki'] print(motorcycles) motorcycles[0] = 'ducati' print(motorcycles) 輸出 ['honda', 'yamaha', 'suzuki'] ['ducati', 'yamaha', 'suzuki']
根據索引值改變元素,先定義一個列表,列表中第一個元素值‘honda’,然後將第一個元素的值改為‘ducati’,可以發現第一個元素變了,其餘元素沒有改變。
新增列表元素
在列表末尾新增元素
motorcycles = ['honda','yamaha','suzuki'] print(motorcycles) motorcycles.append('ducati') print(motorcycles) 輸出 ['honda', 'yamaha', 'suzuki'] ['honda', 'yamaha', 'suzuki', 'ducati']
方法append():追加,可以看到列表中添加了元素‘ducati’,位於列表末尾。
我們可以建立一個空列表,然乎向裡面新增資料,這也是最常見的方式,因為要等程式執行後,才知道使用者要在程式儲存哪些資料。
motorcycles = [] motorcycles.append('honda') motorcycles.append('yamaha') motorcycles.append('suzuki') print(motorcycles) 輸出['honda', 'yamaha', 'suzuki']
在列表中插入元素
使用方法insert()在列表任何位置新增元素,需要指定索引,其餘元素依次後移
motorcycles = ['honda','yamaha','suzuki'] motorcycles.insert(0,'ducati') print(motorcycles) 輸出 ['ducati', 'honda', 'yamaha', 'suzuki']
刪除列表元素
使用del語句刪除列表中的元素
使用del語句刪除元素,可以刪除任何位置的列表元素。前提是知道刪除的元素在列表中的位置!!!
motorcycles = ['honda','yamaha','suzuki']del motorcycles[0] print(motorcycles) 輸出 ['yamaha', 'suzuki']
有時候,你要將元素從列表中刪除,並接著使用它的值。例如,在Web應用程式中,你可能要將使用者從活躍成員列表中刪除,並將其加入到非活躍成員列表中。
使用pop()刪除列表元素
方法pop()可刪除列表末尾的元素,並讓你能夠接著使用它。 術語彈出(pop)源自這樣的類比:列表就像一個棧,而刪除列表末尾的元素相當於彈出棧頂元素。
motorcycles = ['honda','yamaha','suzuki'] print(motorcycles) poped_motorcycles = motorcycles.pop() print(motorcycles) print(poped_motorcycles) 輸出 ['honda', 'yamaha', 'suzuki'] ['honda', 'yamaha'] suzuki
我們首先定義並列印了列表motorcycles,接下來,我們從這個列表中彈出一個值,並將其儲存到變數popped_motorcycle 中。然後我們列印這個列表,以核實從其中刪除了一個值。最後,我們列印彈出的值,以證明我們依然能夠訪問被刪除的值。輸出表明,列表末尾的值'suzuki' 已刪除,它現在儲存在變數popped_motorcycle中。
刪除列表中任意位置的元素
motorcycles = ['honda','yamaha','suzuki'] first_owned = motorcycles.pop(0) print(first_owned) 輸出 honda
如果你不確定該使用del 語句還是pop() 方法,下面是一個簡單的判斷標準:如果你要從列表中刪除一個元素,且不再以任何方式使用它,就使用del 語句;如果你要在刪除元素後還能繼續使用它,就使用方法pop() 。
根據值刪除元素,remove()
有時候,你不知道要從列表中刪除的值所處的位置。 如果你只知道要刪除的元素的值,可使用方法remove()
motorcycles = ['honda','yamaha','suzuki','ducati'] print(motorcycles) motorcycles.remove('ducati') print(motorcycles) 輸出 ['honda', 'yamaha', 'suzuki', 'ducati'] ['honda', 'yamaha', 'suzuki']
方法remove()只刪除第一個指定的值。如果要刪除的值可能在列表中出現多次,就需要使用迴圈來判斷是否刪除了所有這樣的值。