1. 程式人生 > 實用技巧 >Python程式設計:增刪改列表元素

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()只刪除第一個指定的值。如果要刪除的值可能在列表中出現多次,就需要使用迴圈來判斷是否刪除了所有這樣的值。