【編測編學】零基礎學python_07_列表(修改、新增和刪除元素)
你建立的大多數列表都將是動態的,這意味著列表建立後,將隨著程式的執行增刪元素。例如,你建立一個遊戲,要求玩家射殺從天而降的外星人;為此,可在開始時將一些外星人儲存在列表中,然後每當有外星人被射殺時,都將其從列表中刪除,而每次有新的外星人出現在螢幕上時,都將其新增到列表中。在整個遊戲執行期間,外星人列表的長度將不斷變化。
修改列表元素
修改列表元素的語法與訪問列表元素的語法類似。要修改列表元素,可指定列表名和要修改的元素的索引,再指定該元素的新值。
例如,假設有一個摩托車列表,其中的第一個元素為'honda' ,如何修改它的值呢?
我們首先定義一個摩托車列表,其中的第一個元素為'honda' 。接下來,我們將第一個元素的值改為'ducati' 。輸出表明,第一個元素的值確實變了,但
其他列表元素的值沒變:
-
motorcycles = ['honda', 'yamaha', 'suzuki']
-
print(motorcycles)
-
motorcycles[0] = 'harley'
-
print(motorcycles)
複製程式碼
你可以修改任何列表元素的值,而不僅僅是第一個元素的值。
在列表中新增元素
你可能出於眾多原因要在列表中新增新元素,例如,你可能希望遊戲中出現新的外星人、新增視覺化資料或給網站新增新註冊的使用者。Python提供了多種在既有列表中新增新資料的方式。
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)
複製程式碼
最終的列表與前述示例中的列表完全相同:
這種建立列表的方式極其常見,因為經常要等程式執行後,你才知道使用者要在程式中儲存哪些資料。為控制使用者,可首先建立一個空列表,用於儲存使用者將要輸入的值,然後將使用者提供的每個新值附加到列表中。
2. 在列表中插入元素
使用方法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() 只刪除第一個指定的值。如果要刪除的值可能在列表中出現多次,就需要使用迴圈來判斷是否刪除了所有這樣的值。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69985967/viewspace-2735315/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【編測編學】零基礎學python_04_字串(刪除空白)Python字串
- 【編測編學】零基礎學python_06_列表(認識和使用列表)Python
- 【編測編學】零基礎學python_10_列表(建立數值列表 )Python
- 【編測編學】零基礎學python_09_列表(操作列表之遍歷列表)Python
- 【編測編學】零基礎學python_08_列表(排序+反轉+長度)Python排序
- 【編測編學】零基礎學python_11_列表(切片+遍歷切片+複製)Python
- vue實現li列表的新增刪除和修改Vue
- 【編測編學】零基礎學python_02_字串(大小寫轉換)Python字串
- 【編測編學】零基礎學python_03_字串(拼接+換行+製表符)Python字串
- 列表頁取出刪除編輯功能
- jQuery為元素新增和刪除classjQuery
- JavaScript動態新增和刪除div元素JavaScript
- 仿 iOS 列表的編輯功能 – 刪除篇iOS
- 建立元素和刪除元素
- 【編測編學】MySQL資料庫基礎知識MySql資料庫
- Laravel-admin 中列表中禁止某行編輯、刪除Laravel
- SQL基礎——DML(插入、修改和刪除)SQL
- Python列表刪除元素的方法有哪些?Python
- 【編測編學】MySQL資料庫基礎知識2MySql資料庫
- JavaScript 動態新增與刪除元素JavaScript
- JavaScript 陣列新增或者刪除元素JavaScript陣列
- iPhone和iPad程式設計入門 零基礎學習編寫AppiPhoneiPad程式設計APP
- Python 中刪除列表元素的三種方法Python
- JavaScript動態新增或者刪除HTML元素JavaScriptHTML
- Java PDF書籤——新增、編輯、刪除、讀取書籤Java
- ajax編輯資訊和刪除資訊
- 在 Git 中怎樣克隆、修改、新增和刪除檔案?Git
- Python零基礎學習筆記(十五)——list(列表)Python筆記
- jQuery 新增和刪除classjQuery
- 【編測編學】軟體測試的就業如何?就業
- 【編測編學】如何做好大資料測試大資料
- IoTDB SQL語法 建立、新增、修改、刪除 windowsSQLWindows
- Linux基礎命令—新增/刪除組Linux
- Linux基礎之檢視、新增、修改、刪除使用者命令介紹Linux
- 【編測編學】介面測試必備面試題(上)面試題
- jQuery列表動態增加和刪除jQuery
- 【編測編學】雙非畢業如何翻盤?
- jQuery刪除元素jQuery