【python基礎】複雜數據類型-列表類型(增刪改查)

来源:https://www.cnblogs.com/lbprogram/archive/2023/06/01/17441630.html
-Advertisement-
Play Games

# 1.初識列表(list) **列表由一系列按特定順序排列的數據元素組成**。可以將任何類型數據元素加入列表中,其中的數據元素之間沒有任何關係。鑒於列表通常包含多個數據元素,給列表指定一個表示覆數的名稱是個不錯的選擇。 在python中,用方括弧[]來表示列表,並用逗號來分隔其中的數據元素。編寫程 ...


1.初識列表(list)

列表由一系列按特定順序排列的數據元素組成。可以將任何類型數據元素加入列表中,其中的數據元素之間沒有任何關係。鑒於列表通常包含多個數據元素,給列表指定一個表示覆數的名稱是個不錯的選擇。
在python中,用方括弧[]來表示列表,並用逗號來分隔其中的數據元素。編寫程式如下所示
image
運行結果如下所示
image
我們可以發現,用print來輸出列表類型的變數names,會將names列表的所有數據元素都輸出出來。

2.訪問列表

列表是有序集合,因此要訪問列表的任何數據元素,只需將該數據元素的位置或索引告訴python即可。訪問列表數據元素的語法格式,可指出列表的名稱,再指出數據元素的索引,並將其放在方括弧內,如下所示:
image
我們如果要輸出第一個人的名字,也就是小明,拋開python規定,我們可編寫如下程式,做個測試。
image
運行結果如下所示
image
我們發現運行結果和我們想的不一致,問題出在哪裡呢,問題出在索引值上,我們現實中的第一個是索引1,但是在python中的第一個是索引0,所以我們這裡要對應python的第一個索引的話應該是索引0,也就是names[0],將程式做如下修改
image
運行結果如下所示
image
索引詳解圖
image
python為訪問最後一個列表元素提供了一種特殊語法。通過將索引指定為-1,可讓python返回最後一個列表元素。程式如下所示:
image
運行結果如下所示
image
這種語法很有用,因為經常需要在不知道列表長度的情況下訪問最後的元素。這種約定也適用於其他負數索引。例如索引-2返回倒數第二個列表元素。
索引詳解圖
image

3.使用列表數據元素

可像使用其他變數一樣使用列表中的數據元素,例如,可以使用字元串拼接根據列表中的數據元素來創建消息。
比如:向小紅打招呼,詢問已經學習python多長時間了,程式 如下所示
image
運行結果如下所示
image

4.修改列表數據元素

修改列表數據元素的語法與訪問列表數據元素的語法類似。要修改列表數據元素,可指定列表名和要修改的數據元素的索引,再指定該數據元素的新值。
假設將第一個數據元素的姓名修改為小花,編寫程式如下所示
image
運行結果如下所示
image
可以根據索引值修改任何列表數據元素的值,而不是僅僅第一個數據元素的值。

5.添加列表數據元素

python提供了多種在既有列表中添加新數據元素的函數

5.1在列表末尾添加數據元素(append函數)

在列表中添加新數據元素時,最簡單的方式是將數據元素附加到列表末尾。
其語法格式:列表變數名.append(數據元素)
編寫程式做如下所示:
image
運行結果如下所示
image
append()方法讓動態地創建列表十分簡單。例如,可以先創建一個空列表,再使用一系列的append()語句添加數據元素。編寫程式如下所示:
image
運行結果如下所示
image
可以發現創建的列表與上面的一致。這種創建列表的方式極其常見,因為經常要等程式運行後,才知道在程式中需要存儲哪些數據。

5.2在列表中插入數據

使用insert函數可在列表的任何位置添加新數據元素。為此,需要指定新數據元素的索引和值。
其語法格式為:列表變數名.insert(要插入的索引值,要插入的數據)
假設我們要將小黃插入到名字列表中索引第0個的位置,編寫程式如下所示:
image
運行結果如下所示
image
由此可見,insert函數在將數據元素插入之後,其索引值和索引值之後的數據元素都將依次往後移1位。和現實中的插隊類似。

6.刪除列表數據元素

經常需要從列表中刪除一個或多個數據元素。可以根據索引值或值來刪除列表中的數據元素。

6.1關鍵字del

在python中,del關鍵字主要用於對象,也可以用於刪除變數,刪除列表變數或者列表的一部分等。對象的概念後期會再介紹
如果知道要刪除的數據元素在列表中的索引值,可使用del關鍵字。
其語法格式:del 要刪除的對象/變數/列表/列表部分
我們分別從刪除列表單個數據元素,連續多個數據元素,列表變數來介紹

6.1.1刪除單個列表數據元素

假設我們要把小明進行刪除,我們發現小明所在的索引位置為0
於是編寫程式如下所示:
image
運行結果如下所示
image

6.1.2刪除連續多個列表數據元素

假設我們要把連續著的小明和小紅同時刪除,我們發現小明和小紅所在的索引位置是0和1,集合上表示的話就是說0到2,但不包括2,這裡結合後面說的截取列表,可以將要刪除的數據元素,也就是把小明和小紅放到一個截取的列表中,然後通過del進行刪除,編寫程式如下所示
image
輸出結果上,就只剩下小黑和小白了。

6.1.3刪除列表變數

假設我們要把列表變數刪除,而不是清空列表。編寫程式如下所示
image
通過上面的輸出我們可以看到,程式報錯了,錯誤在第4行,提示names沒有被定義,也就是說names變數在輸出之前已經不存在了,也就是我們通過del關鍵字刪除了。經過del關鍵字刪除的列表變數,之後就不能夠被使用了。

6.2使用pop函數刪除元素

有時候,要將數據元素從列表中刪除,刪除的同時,我們後續還需要使用它的值。比如,可能要將用戶從活躍成員列表中刪除,並將其加入到非活躍成員列表中。

6.2.1刪除列表末尾數據元素

pop函數可刪除列表末尾的數據元素,並能夠接著使用它。pop源自這樣的類比:彈出,列表就像一個棧,而刪除列表末尾的數據元素相當於彈出棧頂元素。
其語法格式:列表變數名.pop()
假設我們要刪除小白,然後輸出小白已經被刪除,編寫程式如下所示:
image
運行結果如下所示
image
由此可見,pop函數是有返回值的。返回的是被刪除的列表末尾元素。

6.2.2刪除列表中任何位置處的數據元素

實際上,可以使用pop()來刪除列表中任何位置的元素,只需在括弧中指定要刪除的元素的索引即可。
其語法格式:pop(索引值)
編寫程式如下所示
image
運行結果如下所示:
image
我們可以發現使用pop函數彈出指定索引位置的數據元素後,後面的數據元素依次前移1位。
註意:我們刪除元素時,如果不確定使用del關鍵字還是pop函數,下麵是一個簡單的判斷標準:如果要從列表中刪除一個數據元素,且不再以任何方式使用它,就用del關鍵字;如果你要在刪除元素後還想繼續使用它,就使用pop函數。

6.3根據值刪除數據元素

有時候,不知道要從列表中刪除的值所處的索引值。而只知道要刪除的數據元素的值,可使用remove函數
其語法格式:remove(數據元素值)
假設我們要刪除小黑這個名字,編寫程式如下所示
image
運行結果如下所示
image
我們可以發現,remove函數本身只是將數據元素根據值刪除,但是因為我們知道數據元素的值,後期要是想著使用這個我們刪除的值,我們可以先進行存儲,然後在用到的地方,再進行調用。
註意:remove()方法只刪除第一個與指定元素值相同的數據元素。如果要刪除的數據元素可能在列表中出現多次,就需要使用迴圈來判斷是否刪除了所有這樣的值。這會在後面進行介紹


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在筆者上一篇文章`《驅動開發:內核解析PE結構導出表》`介紹瞭如何解析記憶體導出表結構,本章將繼續延申實現解析PE結構的PE頭,PE節表等數據,總體而言內核中解析PE結構與應用層沒什麼不同,在上一篇文章中`LyShark`封裝實現了`KernelMapFile()`記憶體映射函數,在之後的章節中這個函數... ...
  • Consul 通過 Key/Value 功能集中管理存儲配置信息, 通過 Spring Cloud Consul Config 可以實現 Config Server 和 Client 的關聯. 在 Spring 啟動的 bootstrap 階段, 配置會被載入環境上下文. ...
  • # 1. 前言 最近有點時間,就隨便找點東西弄弄,倒也碰到了一些問題,在此記錄下 # 2. 環境 Python3.11.3 + selenium4.9.1 + opencv4.7 + PyAutoGUI0.9.54 + windows11 # 3. 開始 ## 3.1 賬號密碼輸入 ![image] ...
  • 有時候我們使用python自動化框架的時候,打開一個網頁的時候,它會出現出線這一種登錄框,我們f12檢查不了,用開發者工具強制檢查裡面沒有任何屬性. 那這時候我們就可以用到python第三方庫:pyautogui PyAutoGUI:是一個Python庫,可用於自動化GUI(圖形用戶界面)程式的任務 ...
  • 本文介紹基於**Python**中**ArcPy**模塊,對大量柵格遙感影像文件**批量**進行**無效值**(**NoData**值)填充的方法。 在處理柵格圖像文件時,我們經常會遇到圖像中存在有無效值(即**NoData**值)的情況。如下圖所示,這裡有一個**矢量面要素圖層**和該矢量圖層範圍 ...
  • 我們在初學 Java 編程的時候,總是感覺很枯燥乏味,想著做點可以交互的小系統,可以讓用戶自由輸入,系統可以接收做出反映。這就要介紹一下 Java 中的 Scanner 類了。 ...
  • 通過python來開發web應用,可以產簡化了web開發的流程,功能和函數庫也是非常豐富,我們也是開箱即用,目前比較流程的WEB框架就是Flask和django。 > 根據2020年JetBrains Python開發人員調查,Django和Flask是迄今為止最受歡迎的兩個Python Web框架 ...
  • 在今年2月14日的時候,Keycloak 團隊宣佈他們正在棄用大多數 Keycloak 適配器。其中包括Spring Security和Spring Boot的適配器,這意味著今後Keycloak團隊將不再提供針對Spring Security和Spring Boot的集成方案。但是,如此強大的Ke ...
一周排行
    -Advertisement-
    Play Games
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...