【編測編學】零基礎學python_07_列表(修改、添加和刪除元素)

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

修改列表元素
修改列表元素的語法與訪問列表元素的語法相似。要修改列表元素,可指定列表名和要修改的元素的索引,再指定該元素的新值。
例如,假設有一個摩托車列表,其中的第一個元素爲'honda' ,如何修改它的值呢?
咱們首先定義一個摩托車列表,其中的第一個元素爲'honda' 。接下來,咱們將第一個元素的值改成'ducati' 。輸出代表,第一個元素的值確實變了,但
其餘列表元素的值沒變:



ide

motorcycles = ['honda', 'yamaha', 'suzuki']網站

print(motorcycles)索引

motorcycles[0] = 'harley'遊戲

print(motorcycles)rem

複製代碼it

你能夠修改任何列表元素的值,而不單單是第一個元素的值。 ast

在列表中添加元素
你可能出於衆多緣由要在列表中添加新元素,例如,你可能但願遊戲中出現新的外星人、添加可視化數據或給網站添加新註冊的用戶。Python提供了多種在既有列表中添加新數據的方式。
class

  1. 在列表末尾添加元素
    在列表中添加新元素時,最簡單的方式是將元素附加到列表末尾。給列表附加元素時,它將添加到列表末尾。繼續使用前一個示例中的列表,在其末尾添加新元素'ducati' :

motorcycles = ['honda', 'yamaha', 'suzuki']變量

print(motorcycles)

motorcycles.append('harley')

print(motorcycles)

複製代碼

方法append() 將元素'harley' 添加到了列表末尾,而不影響列表中的其餘全部元素:

方法append() 讓動態地建立列表易如反掌,例如,你能夠先建立一個空列表,再使用一系列的append() 語句添加元素。下面來建立一個空列表,再在其中添加元素'honda' 、'yamaha' 和'suzuki' :

motorcycles = []

motorcycles.append('honda')

motorcycles.append('yamaha')

motorcycles.append('suzuki')

print(motorcycles)

複製代碼

最終的列表與前述示例中的列表徹底相同:

這種建立列表的方式極其常見,由於常常要等程序運行後,你才知道用戶要在程序中存儲哪些數據。爲控制用戶,可首先建立一個空列表,用於存儲用戶將要輸入的值,而後將用戶提供的每一個新值附加到列表中。

  1. 在列表中插入元素
    使用方法insert() 可在列表的任何位置添加新元素。爲此,你須要指定新元素的索引和值。

motorcycles = ['honda', 'yamaha', 'suzuki']

motorcycles.insert(0, 'ducati')

print(motorcycles)

複製代碼

在這個示例中,值'ducati' 被插入到了列表開頭;方法insert() 在索引0 處添加空間,並將值'ducati' 存儲到這個地方。這種操做將列表中既有的每一個元素都右
移一個位置:

3.2.3
從列表中刪除元素
你常常須要從列表中刪除一個或多個元素。例如,玩家將空中的一個外星人射殺後,你極可能要將其從存活的外星人列表中刪除;當用戶在你建立的Web應用中註銷其帳戶時,
你須要將該用戶從活躍用戶列表中刪除。你能夠根據位置或值來刪除列表中的元素。


  1. 使
    使用
    用del 語
    語句
    句刪
    刪除
    除元
    元素

    若是知道要刪除的元素在列表中的位置,可以使用del 語句。
    motorcycles = ['honda', 'yamaha', 'suzuki']
    print(motorcycles)
    ❶ del motorcycles[0]
    print(motorcycles)
    ❶ 處的代碼使用del 刪除了列表motorcycles 中的第一個元素——'honda' :
    ['honda', 'yamaha', 'suzuki']
    ['yamaha', 'suzuki']使用del 可刪除任何位置處的列表元素,條件是知道其索引。下例演示瞭如何刪除前述列表中的第二個元素——'yamaha' :
    motorcycles = ['honda', 'yamaha', 'suzuki']
    print(motorcycles)
    del motorcycles[1]
    print(motorcycles)
    下面的輸出代表,已經將第二款摩托車從列表中刪除了:
    ['honda', 'yamaha', 'suzuki']
    ['honda', 'suzuki']
    在這兩個示例中,使用del 語句將值從列表中刪除後,你就沒法再訪問它了。























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

    有時候,你要將元素從列表中刪除,並接着使用它的值。例如,你可能須要獲取剛被射殺的外星人的 x 和 y 座標,以便在相應的位置顯示爆炸效果;在Web應用程序中,你可能
    要將用戶從活躍成員列表中刪除,並將其加入到非活躍成員列表中。
    方法pop() 可刪除列表末尾的元素,並讓你可以接着使用它。術語彈
    彈出
    出 (pop)源自這樣的類比:列表就像一個棧,而刪除列表末尾的元素至關於彈出棧頂元素。
    下面從列表motorcycles 中彈出一款摩托車:
    ❶ motorcycles = ['honda', 'yamaha', 'suzuki']
    print(motorcycles)
    ❷ popped_motorcycle = motorcycles.pop()
    ❸ print(motorcycles)
    ❹ print(popped_motorcycle)
    咱們首先定義並打印了列表motorcycles (見❶)。接下來,咱們從這個列表中彈出一個值,並將其存儲到變量popped_motorcycle 中(見❷)。而後咱們打印這個列
    表,以覈實從其中刪除了一個值(見❸)。最後,咱們打印彈出的值,以證實咱們依然可以訪問被刪除的值(見❹)。
    輸出代表,列表末尾的值'suzuki' 已刪除,它如今存儲在變量popped_motorcycle 中:
    ['honda', 'yamaha', 'suzuki']
    ['honda', 'yamaha']
    suzuki
    方法pop() 是怎麼起做用的呢?假設列表中的摩托車是按購買時間存儲的,就可以使用方法pop() 打印一條消息,指出最後購買的是哪款摩托車:
    motorcycles = ['honda', 'yamaha', 'suzuki']
    last_owned = motorcycles.pop()
    print("The last motorcycle I owned was a " + last_owned.title() + ".")
    輸出是一個簡單的句子,指出了最新購買的是哪款摩托車:
    The last motorcycle I owned was a Suzuki.































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

    實際上,你能夠使用pop() 來刪除列表中任何位置的元素,只需在括號中指定要刪除的元素的索引便可。
    motorcycles = ['honda', 'yamaha', 'suzuki']
    ❶ first_owned = motorcycles.pop(0)
    ❷ print('The first motorcycle I owned was a ' + first_owned.title() + '.')
    首先,咱們彈出了列表中的第一款摩托車(見❶),而後打印了一條有關這輛摩托車的消息(見❷)。輸出是一個簡單的句子,描述了我購買的第一輛摩托車:
    The first motorcycle I owned was a Honda.
    別忘了,每當你使用pop() 時,被彈出的元素就再也不在列表中了。
    若是你不肯定該使用del 語句仍是pop() 方法,下面是一個簡單的判斷標準:若是你要從列表中刪除一個元素,且再也不以任何方式使用它,就使用del 語句;若是你要在刪除元
    素後還能繼續使用它,就使用方法pop() 。






















  4. 根據
    據值
    值刪
    刪除
    除元
    元素

    有時候,你不知道要從列表中刪除的值所處的位置。若是你只知道要刪除的元素的值,可以使用方法remove() 。
    例如,假設咱們要從列表motorcycles 中刪除值'ducati' 。motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
    print(motorcycles)
    ❶ motorcycles.remove('ducati')
    print(motorcycles)
    ❶ 處的代碼讓Python肯定'ducati' 出如今列表的什麼地方,並將該元素刪除:
    ['honda', 'yamaha', 'suzuki', 'ducati']
    ['honda', 'yamaha', 'suzuki']
    使用remove() 從列表中刪除元素時,也可接着使用它的值。下面刪除值'ducati' ,並打印一條消息,指出要將其從列表中刪除的緣由:
    ❶ motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
    print(motorcycles)
    ❷ too_expensive = 'ducati'
    ❸ motorcycles.remove(too_expensive)
    print(motorcycles)
    ❹ print("\nA " + too_expensive.title() + " is too expensive for me.")
    在❶處定義列表後,咱們將值'ducati' 存儲在變量too_expensive 中(見❷)。接下來,咱們使用這個變量來告訴Python將哪一個值從列表中刪除(見❸)。最後,
    值'ducati' 已經從列表中刪除,但它還存儲在變量too_expensive 中(見❹),讓咱們可以打印一條消息,指出將'ducati' 從列表motorcycles 中刪除的緣由:
    ['honda', 'yamaha', 'suzuki', 'ducati']
    ['honda', 'yamaha', 'suzuki']
    A Ducati is too expensive for me.

    注意 方法remove() 只刪除第一個指定的值。若是要刪除的值可能在列表中出現屢次,就須要使用循環來判斷是否刪除了全部這樣的值。

相關文章
相關標籤/搜索