Python教程(9)——Python變數類型列表list的用法介紹

来源:https://www.cnblogs.com/kiwiblog/archive/2023/08/15/17632498.html
-Advertisement-
Play Games

在Python中,列表(list)是一種有序、可變的數據結構,用於存儲多個元素。列表可以包含不同類型的元素,包括整數、浮點數、字元串等。實際上列表有點類似C++語言中的數組,但僅僅只是類似,和數組還是有點不一樣的。列表非常適合利用順序和位置定位某一元素,尤其是當元素的順序或內容經常發生改變時。 在P ...


在Python中,列表(list)是一種有序、可變的數據結構,用於存儲多個元素。列表可以包含不同類型的元素,包括整數、浮點數、字元串等。實際上列表有點類似C++語言中的數組,但僅僅只是類似,和數組還是有點不一樣的。列表非常適合利用順序和位置定位某一元素,尤其是當元素的順序或內容經常發生改變時。

在Python列表使用方括弧[]來表示,其中的元素用逗號,分隔。下麵是一個簡單的列表示例:

fruits = ['apple', 'banana', 'orange']

這個列表fruits包含了三個字元串元素:'apple'、'banana'和'orange'。

列表是可變的,這意味著您可以修改列表的內容。你可以通過索引來訪問和修改列表中的特定元素。索引從0開始,即第一個元素的索引為0。最後一個元素的索引為-1。

fruits = ['apple', 'banana', 'orange']
print(fruits[0])  # 輸出第一個元素 'apple'
print(fruits[-1])  # 輸出最後一個元素 'orange'
fruits[1] = 'cherry'  # 修改第二個元素為 'cherry'
fruits.append('strawberry')  # 在列表末尾添加 'strawberry'
del fruits[2]  # 刪除第三個元素 'orange'
print(fruits)  # 輸出修改後的列表 ['apple', 'cherry', 'strawberry']

列表支持許多其他有用的方法,如插入元素、移除元素、排序等。使用列表能夠方便地存儲和操作多個元素,因此在Python編程中經常被使用到。

創建列表

要想使用列表,肯定要先創建它,Python中創建列表的方式有以下幾種:

  1. 使用方括弧 [] 創建包含元素的列表:
my_list = [1, 2, 3, 4, 5]
  1. 使用 list() 函數將其他數據類型轉換為列表:
my_string = "hello"
my_list = list(my_string) #輸出['h', 'e', 'l', 'l', 'o']
  1. 使用列表推導式創建列表:
my_list = [x for x in range(10)] #輸出[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  1. 使用 range() 函數創建列表:
my_list = list(range(10)) #輸出[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  1. 使用 * 運算符創建重覆元素的列表:
my_list = [0] * 5 #輸出[0, 0, 0, 0, 0]

以上就是創建列表的幾種方式,可以看到,Python中創建列表的方式非常靈活,可以根據具體的需求選擇不同的方式。但是初學者的話,只要掌握第1、2種創建方式就可以了,後面在實踐的過程種慢慢掌握其他的。

訪問列表

創建了列表之後,我們肯定是需要訪問列表的,在Python中,有幾種常見的方式可以訪問列表(list)中的元素:

  1. 通過索引訪問:可以使用索引來訪問列表中的特定元素。索引從0開始,表示列表中的第一個元素,依次遞增。例如,my_list[0]表示列表my_list中的第一個元素,my_list[1]表示第二個元素,以此類推。
my_list = [1, 2, 3, 4, 5]
print(my_list[0])  # 1
print(my_list[2])  # 3
  1. 使用切片訪問:可以使用切片(slice)操作符來獲取列表中的一個子列表。切片操作符使用方括弧[],並指定起始索引和結束索引(不包含),中間用冒號:分隔。例如,my_list[1:4]表示從第二個元素到第四個元素(不包含)的子列表。
my_list = [1, 2, 3, 4, 5]
print(my_list[1:3])  # [2, 3]
print(my_list[:3])   # [1, 2, 3]
print(my_list[3:])   # [4, 5]
  1. 迭代訪問:可以使用迴圈結構(如for迴圈)來遍歷列表中的每個元素。迭代遍歷可以將列表中的每個元素逐個訪問並處理,非常方便。
my_list = [1, 2, 3, 4, 5]
for item in my_list:
   print(item)
# 這將依次列印出列表中的每個元素。
  1. 使用內置方法:列表還提供了許多內置方法和函數,可以方便地訪問和處理列表中的元素。例如,len()函數可以返回列表的長度(即元素個數);index()方法可以返回給定元素在列表中的索引;count()方法可以統計給定元素在列表中的出現次數等。
my_list = [1, 2, 3, 4, 5]
print(my_list.index(3))  # 2
my_list.append(6)
print(my_list)  # [1, 2, 3, 4, 5, 6]
my_list.append(6)
my_count = my_list.count(6) # 元素6出現的次數
print(my_count)  # 2

這些是一些常用的訪問列表的方式,可以根據具體的需求選擇合適的方式來操作列表中的元素。請註意,當訪問列表時,要確保索引或切片的範圍在列表的有效範圍內,以避免出現索引錯誤。

更改列表元素

創建列表之後,我們還需要對列表元素進行修改,包括增加元素,修改元素,刪除元素。在Python中,可以通過多種方式來更改列表(list)中的元素:

增加列表元素

當需要向Python列表中添加新元素時,我們可以使用以下幾種方式:

  1. 使用 append() 方法:可以使用 append() 方法在列表的末尾添加一個元素。例如:
my_list = [1, 2, 3]
my_list.append(4)
print(my_list)  # [1, 2, 3, 4]
  1. 使用 insert() 方法:可以使用 insert() 方法在指定位置插入一個元素。該方法接受兩個參數,第一個參數是插入的位置(索引),第二個參數是要插入的元素。例如:
my_list = [1, 2, 3]
my_list.insert(1, 99)
print(my_list)  # [1, 99, 2, 3]
  1. 使用 extend() 方法或 + 運算符:可以使用 extend() 方法將另一個列表的元素添加到當前列表的末尾,或者使用 + 運算符將兩個列表連接起來。例如:
my_list = [1, 2, 3]
my_list.extend([4, 5])
print(my_list)  # [1, 2, 3, 4, 5]

my_list = [1, 2, 3]
my_list = my_list + [4, 5]
print(my_list)  # [1, 2, 3, 4, 5]

總結來說,我們可以使用 append()insert()extend() 方法或 + 運算符來向Python列表添加新元素。選擇具體的方式取決於你的需求。

修改列表元素

在Python中,可以使用索引或切片來修改列表中的元素。下麵我們給出幾種修改列表元素的常見方法:

  1. 使用索引賦值:可以通過使用索引來定位並直接修改列表中的元素。示例如下:
my_list = [1, 2, 3, 4, 5]
my_list[0] = 100
print(my_list)  # [100, 2, 3, 4, 5]
  1. 使用切片賦值:可以使用切片來一次性修改多個元素的值。示例如下:
my_list = [1, 2, 3, 4, 5]
my_list[1:3] = [200, 300]
print(my_list)  # [1, 200, 300, 4, 5]

刪除列表元素

在Python中,有幾種方法可以刪除列表中的元素。下麵是一些常用的方法:

  1. 使用 del 關鍵字:可以使用 del 關鍵字刪除列表中指定位置的元素。示例如下:
my_list = [1, 2, 3, 4, 5]
del my_list[0]
print(my_list)  # [2, 3, 4, 5```
  1. 使用 remove() 方法:可以使用 remove() 方法刪除列表中的指定值的元素。示例如下:
my_list = [1, 2, 3, 4, 5]
my_list.remove(3)
print(my_list)  # [1, 2, 4, 5]
  1. 使用 pop() 方法:可以使用 pop() 方法刪除列表中指定位置的元素,並返回被刪除的元素的值。如果沒有指定位置,預設刪除列表末尾的元素。示例如下:
my_list = [1, 2, 3, 4, 5]
deleted_element = my_list.pop(2)
print(deleted_element)  # 3
print(my_list)  # [1, 2, 4, 5]
  1. 使用列表切片:可以使用切片來刪除列表中的一段元素。示例如下:
my_list = [1, 2, 3, 4, 5, 6]
my_list = my_list[:2] + my_list[4:]
print(my_list)  # [1, 2, 4, 5]

需要註意的是,當刪除元素時,確保索引或值存在於列表中,以避免出現錯誤。此外,刪除操作會修改原列表,所以要謹慎操作。刪除列表元素是列表操作中比較容易出錯的,有幾個方面需要特別註意的(當然對於零基礎編程經驗的初學者暫時先不用管):

  • 確保元素存在:在刪除列表元素之前,要確保要刪除的元素確實存在於列表中,否則會引發異常。可以使用條件語句(如 if)或異常處理(如 try-except)來處理可能的異常情況。
  • 謹慎使用索引:當使用索引刪除元素時,要確保索引值處於有效範圍內,否則會引發 IndexError 異常。要根據具體情況仔細考慮索引值是否正確。
  • 註意列表長度變化:刪除元素後,列表的長度會發生變化。如果使用迴圈來遍歷列表並刪除元素,可能會導致漏刪或刪除錯誤的元素。一種解決方法是倒序遍歷列表來避免索引錯位。這種方法在leetcode編程中經常會被用到,非常好用。
  • 不要直接迭代刪除:不要在迭代列表的同時直接刪除元素,這會導致迭代過程中的迭代順序和預期不一致,可能會出現意外結果。可以考慮在迭代過程中收集要刪除的索引或值,之後再進行批量刪除。
  • 考慮使用切片刪除:對於需要刪除一段連續的元素的情況,可以使用切片來一次性刪除多個元素,這樣更高效。

刪除列表

使用完列表之後,如果不想在使用了,需要要刪除整個列表,可以使用del關鍵字或者clear()方法。

  1. 使用del關鍵字可以刪除整個列表對象,例如:
my_list = [1, 2, 3, 4, 5]
del my_list
print(my_list) #拋出異常
  1. 使用clear()方法可以清空列表中的所有元素,但是列表對象本身仍然存在,例如:
my_list = [1, 2, 3, 4, 5]
my_list.clear()
print(my_list) # []

註意,使用del關鍵字刪除列表對象後,該對象將無法再被訪問,所以列印my_list的值會出錯,而使用clear()方法清空列表後,該列表對象仍然可以被訪問,只是其中不再包含任何元素。

更多精彩內容,請關註同名公眾:一點sir(alittle-sir)


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

-Advertisement-
Play Games
更多相關文章
  • 這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 一、需求 微信掃碼授權,如果允許授權,則登錄成功,跳轉到首頁。 二、問題 1、微信掃碼授權有幾種實現方式? 2、說一下這幾種實現方式的原理是什麼? 3、vue中的微信掃碼授權登錄,與uniapp和原生小程式的微信授權登錄,它們之間有共同點 ...
  • 本文,將向大家介紹 CSS 規範中,最新的 Anchor Positioning,翻譯為**錨點定位**。 Anchor Position 的出現,極大的豐富了 CSS 的能力,雖然語法稍顯複雜,但是有了它,能夠實現非常多之前實現起來非常困難,或者壓根無法使用純 CSS 實現的功能。 Anchor ...
  • 索引簽名是 TypeScript 中一個強大的特性,它允許我們在對象和類中使用動態的屬性名稱。通常情況下,我們會在對象或類中定義固定的屬性,但有時我們需要處理具有動態屬性名稱的情況。這時,索引簽名就派上了用場。 在這篇技術博文中,我們將介紹索引簽名的使用方法和用例,將展示如何定義帶有索引簽名的介面... ...
  • CQRS也叫命令查詢職責分離,是近年來非常流行的應用程式架構模式。本文將重點介紹如何通過MediatR的管道功能將FluentValidation集成到CQRS項目中實現驗證功能。 ...
  • 獲取byte中每一位的值 byte byData = 0x36; int n0, n1, n2, n3, n4, n5, n6, n7; n0 = (byData & 0x01) == 0x01 ? 1 : 0; n1 = (byData & 0x02) == 0x02 ? 1 : 0; n2 = ...
  • 背景:在linux環境下,很多服務我們都使用docker來跑,很是方便,容器服務獨立,配置獨立,數據獨立等等,但是有個問題,就是如果某個服務異常了,暫停了,停止了,一直重啟中,我們要怎麼及時的知道是哪個服務,併進行處理,保證業務正常運行。 本文主要介紹使用docker服務自帶的一些命令來實現一個基本 ...
  • Lua程式設計第四版第二部分編程實操自做練習題答案,帶:star:為重點。 ## 14.1 :star: > 該函數用於兩個稀疏矩陣相加 ```lua function martixAdd(a, b) local c = {} for i = 1, #a, 1 do c[i] = {} for k, ...
  • [TOC] ## 類型的基本歸類 **整形家族:** ```c char unsigned char signed char short unsigned short [int] signed short [int] int unsigned int signed int long unsigned ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...