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

列表操作

  • 創建列表
  • 訪問列表
  • 更改列表元素
    • 增加列表元素
    • 修改列表元素
    • 刪除列表元素
  • 刪除列表

在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)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/37921.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/37921.shtml
英文地址,請注明出處:http://en.pswp.cn/news/37921.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

配置 yum/dnf 置您的系統以使用默認存儲庫

題目 給系統配置默認存儲庫,要求如下: YUM 的 兩 個 存 儲 庫 的 地 址 分 別 是 : ftp://host.domain8.rhce.cc/dvd/BaseOS ftp://host.domain8.rhce.cc/dvd/AppStream vim /etc/yum.repos.d/redhat.repo [base] namebase baseurlftp:/…

C語言快速回顧(一)

前言 在Android音視頻開發中,網上知識點過于零碎,自學起來難度非常大,不過音視頻大牛Jhuster提出了《Android 音視頻從入門到提高 - 任務列表》,結合我自己的工作學習經歷,我準備寫一個音視頻系列blog。C/C是音視頻必…

Rabbitmq延遲消息

目錄 一、延遲消息1.基于死信實現延遲消息1.1 消息的TTL(Time To Live)1.2 死信交換機 Dead Letter Exchanges1.3 代碼實現 2.基于延遲插件實現延遲消息2.1 插件安裝2.2 代碼實現 3.基于延遲插件封裝消息 一、延遲消息 延遲消息有兩種實現方案&#xff…

2016年,進了百度

昨在深圳出差,與微信里的朋友吃了個便飯,他是今年四月份加的我微信(gaoyang677),他的經歷很有意思,經他許可,分享給大家。 2012年時候,他大學畢業來到深圳,進了廠子&…

vue3 setup+Taro3 調用原生小程序自定義年月日時分多列選擇器,NutUI改造

vue3 setupTaro3 調用原生小程序自定義年月日時分多列選擇器&#xff0c;NutUI改造 NutUI 有日期時間選擇器&#xff0c;但是滑動效果太差&#xff0c;卡頓明顯。換成 原生小程序 很順暢 上代碼&#xff1a; <template><view><pickermode"multiSelector&…

2023牛客暑期多校訓練營9-J Puzzle: Star Battle

2023牛客暑期多校訓練營9-J Puzzle: Star Battle https://ac.nowcoder.com/acm/contest/57363/J 文章目錄 2023牛客暑期多校訓練營9-J Puzzle: Star Battle題意解題思路代碼 題意 解題思路 出題人都說是詐騙題&#xff08;&#xff0c;可以發現滿足每行每列恰好有 n n n個星…

python數據結構和算法

python數據結構和算法 參考 python圖解算法 選擇/快速排序 哈希表 廣度優先搜索算法 迪杰斯特拉算法 貪婪算法 動態規劃 K-鄰近算法 計算機科學是解決問題的研究。計算機科學使用抽象作為表示過程和數據的工具。抽象的數據類型允許程序員通過隱藏數據的細節來管理問題領域的…

【解決】Kafka Exception thrown when sending a message with key=‘null‘ 異常

問題原因&#xff1a; 如下圖&#xff0c;kafka 中配置的是監聽域名的方式&#xff0c;但程序里使用的是 ip:port 的連接方式。 解決辦法&#xff1a; kafka 中配置的是域名的方式&#xff0c;程序里也相應配置成 域名:port 的方式&#xff08;注意&#xff1a;本地h…

機器學習筆記之優化算法(十三)關于二次上界引理

機器學習筆記之優化算法——關于二次上界引理 引言回顧&#xff1a;利普希茲連續梯度下降法介紹 二次上界引理&#xff1a;介紹與作用二次上界與最優步長之間的關系二次上界引理證明過程 引言 本節將介紹二次上界的具體作用以及它的證明過程。 回顧&#xff1a; 利普希茲連續…

uniapp 微信小程序 訂閱消息

第一步&#xff0c;需要先去小程序官方挑選一下訂閱模板拿到模板id 訂閱按鈕在頭部導航上&#xff0c;所以 <u-navbar :bgColor"bgColor"><view class"u-nav-slot" slot"left" click"goSubscribe"><image :src"g…

阿里社招一面記錄

一輪電話面試&#xff0c;一個半小時&#xff0c;昨天晚上面試的&#xff0c;今早面試官打電話約了二面&#xff08;為啥是一面面試官:&#xff09; 自我介紹 工作經歷&#xff0c;項目經歷項目挑兩個介紹一下 這里介紹了一個偏技術的基于Mysql搭建的olap系統&#xff0c;數據…

綜述:計算機視覺中的圖像分割

一、說明 這篇文章是關于圖像分割的探索&#xff0c;這是解決計算機視覺問題&#xff08;如對象檢測、對象識別、圖像編輯、醫學圖像分析、自動駕駛汽車等&#xff09;的重要步驟之一。讓我們從介紹開始。 二、圖像分割介紹 圖像分割是計算機視覺中的一項基本任務&#xff0c;涉…

【Maven】SpringBoot項目使用maven-assembly-plugin插件多環境打包

SpringBoot項目使用maven-assembly-plugin插件多環境打包 1.創建SpringBoot項目并在pom.xml文件中添加maven-assembly-plugin配置 <!-- 多環境配置 --><profiles><!-- 開發環境 --><profile><id>dev</id><properties><prof…

新一代分布式融合存儲,數據場景All In One

1、摘要 2023年5月11日&#xff0c;浪潮信息全國巡展廣州站正式啟航。會上&#xff0c;重磅發布新一代分布式融合存儲AS13000G7&#xff0c;其采用極致融合架構設計理念&#xff0c;實現同一套存儲滿足四種非結構化數據的“All In One”高效融合&#xff0c;數據存力提升300%&a…

基于WebSocket的在線文字聊天室

與Ajax不同&#xff0c;WebSocket可以使服務端主動向客戶發送響應&#xff0c;本案例就是基于WebSocket的一個在線聊天室&#xff0c;不過功能比較簡單&#xff0c;只能滿足文字交流。演示如下。 案例學習于b站up主&#xff0c;鏈接 。這位up主講的非常清楚&#xff0c;值得去學…

item_get_sales-獲取TB商品銷量詳情

一、接口參數說明&#xff1a; item_get_sales-獲取商品銷量詳情&#xff0c;點擊更多API調試&#xff0c;請移步注冊API賬號點擊獲取測試key和secret 公共參數 請求地址: https://api-gw.onebound.cn/taobao/item_get_sales 名稱類型必須描述keyString是調用key&#xff08…

Idea 快捷鍵整理

Idea快捷鍵和自動代碼補全匯總 idea快捷鍵匯總 Ctrl 快捷鍵說明Ctrl F在當前文件進行文本查找 &#xff08;必備&#xff09;Ctrl R在當前文件進行文本替換 &#xff08;必備&#xff09;Ctrl Z撤銷 &#xff08;必備&#xff09;Ctrl Y刪除光標所在行 或 刪除選中的行 &am…

設計HTML5圖像和多媒體

在網頁中的文本信息直觀、明了&#xff0c;而多媒體信息更富內涵和視覺沖擊力。恰當使用不同類型的多媒體可以展示個性&#xff0c;突出重點&#xff0c;吸引用戶。在HTML5之前&#xff0c;需要借助插件為網頁添加多媒體&#xff0c;如Adobe Flash Player、蘋果的QuickTime等。…

【C++精華鋪】6.C++類和對象(下)類與對象的知識補充及編譯器優化

目錄 1. 再談構造 1.1 成員變量的初始化&#xff08;初始化列表&#xff09; 1.2 初始化列表的行為 1.3 explicit關鍵字 2. 類中的static成員 2.1 靜態成員變量 2.2 靜態成員函數 3. 友元 3.1 友元函數 3.1 友元類 4. 內部類 5. 匿名對象 6. 對象拷貝時候的編譯器優化…

GitHub 打不開解決方案

GitHub 這幾年國內普通用戶越來越難以訪問&#xff0c;github 作為全球最大的開源平臺&#xff0c;里面有用的內容很多&#xff0c;不管是對專業用戶還是普通用戶&#xff0c;無法訪問都是很嚴重的問題。 1.GitHub 加速鏡像 kgithub 是一個公益加速項目&#xff0c;僅需在 gi…