Python列表操作函數

在Python中,列表(list)是一種可變的數據類型,它包含一系列有序的元素。Python提供了一系列內置的函數和方法來操作列表。以下是一些常用的Python列表操作函數和方法:

列表方法
append(x)
將元素x添加到列表的末尾。

insert(i, x)
在列表的指定位置i插入元素x。

remove(x)
從列表中刪除第一個值為x的元素(如果存在的話)。

pop([i])
移除并返回列表中的一個元素(默認為最后一個元素),如果指定索引i,則移除并返回該位置的元素。

clear()
移除列表中的所有元素(清空列表)。

index(x, [start, [stop]])
返回列表中第一個值為x的元素的索引,如果沒有找到則拋出ValueError。可選參數start和stop用于指定搜索范圍。

count(x)
返回列表中值為x的元素的個數。

sort(key=None, reverse=False)
對列表進行原地排序。如果指定了key參數,則排序會按照key函數指定的方式進行。如果reverse為True,則排序是降序的。

reverse()
反轉列表中的元素。

copy()
返回列表的一個淺拷貝。

內置函數
len(list)
返回列表的長度(元素個數)。

list(iterable)
將可迭代對象轉換為列表。

sorted(iterable, key=None, reverse=False)
返回一個新的列表,包含可迭代對象中所有元素,并使用指定的key函數進行排序。如果reverse為True,則排序是降序的。這個函數不會修改原始列表。

sum(iterable, start)
返回數值型可迭代對象的元素之和。對于列表,這通常用于數值列表。start參數是可選的,表示求和的初始值。

max(iterable, key=None) 和 min(iterable, key=None)
返回可迭代對象中的最大值或最小值。可以通過key參數指定一個函數來確定比較的依據。

all(iterable) 和 any(iterable)
對可迭代對象的元素進行邏輯判斷,all()檢查是否所有元素都為真(或可迭代對象為空),any()檢查是否有任何元素為真。對于列表,這通常用于布爾值列表或可以對元素進行布爾解釋的列表。

enumerate(iterable, start=0)
返回一個枚舉對象,該對象生成由可迭代對象的索引和值組成的元組。通常用于在循環中同時獲取索引和值。

map(function, iterable, …)
返回一個迭代器,該迭代器應用給定的函數到可迭代對象的每個項目,并產生結果。對于列表,這通常用于將函數應用于列表的每個元素并返回結果的新列表(雖然map本身返回的是迭代器,但可以轉換為列表)。

filter(function, iterable)
返回一個迭代器,該迭代器產生那些函數返回值為真的可迭代對象的元素。對于列表,這通常用于過濾出滿足特定條件的元素。

range(start, stop, step)
雖然range本身不是一個列表操作函數,但它經常與列表一起使用,用于生成一個整數序列,該序列可以在循環中迭代或在列表推導式中使用以創建列表。在Python 3中,range返回一個迭代器,但在許多情況下,它可以像列表一樣使用(例如,在for循環中)。如果你確實需要一個列表,可以使用list(range(…))將其轉換為列表。

下面是一些使用這些方法和函數的例子:

創建一個列表

my_list = [1, 2, 3, 4, 5]

添加元素

my_list.append(6) # [1, 2, 3, 4, 5, 6]
my_list.insert(0, 0) # [0, 1, 2, 3, 4, 5, 6]
my_list.extend([7, 8, 9]) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

刪除元素

my_list.remove(3) # [0, 1, 2, 4, 5, 6, 7, 8, 9]
popped_element = my_list.pop() # popped_element = 9, my_list = [0, 1, 2, 4, 5, 6, 7, 8]
my_list.clear() # []

查找元素

index_of_2 = my_list.index(2) # 這會拋出一個ValueError,因為列表已經被清空了

為了避免錯誤,通常需要在調用index之前檢查元素是否存在,或者使用try-except捕獲異常。

排序和反轉(假設列表沒有被清空)

my_list = [5, 3, 1, 4, 2]
my_list.sort() # [1, 2, 3, 4, 5]
my_list.reverse() # [5, 4, 3, 2, 1]

需要注意的是,上面提到的sort()和reverse()方法會直接修改原列表(它們是原地操作),而不是返回一個新的列表。如果你需要保留原列表并創建一個排序或反轉后的新列表,可以使用切片和內置的sorted()函數:

排序但不修改原列表

original_list = [5, 3, 1, 4, 2]
sorted_list = sorted(original_list) # [1, 2, 3, 4, 5]

original_list 仍然是 [5, 3, 1, 4, 2]

反轉但不修改原列表

reversed_list = original_list[::-1] # [2, 4, 1, 3, 5]

original_list 仍然是 [5, 3, 1, 4, 2]

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

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

相關文章

文獻速遞:帕金森的疾病分享--多模態機器學習預測帕金森病

文獻速遞:帕金森的疾病分享–多模態機器學習預測帕金森病 Title 題目 Multi-modality machine learning predicting Parkinson’s disease 多模態機器學習預測帕金森病 01 文獻速遞介紹 對于漸進性神經退行性疾病,早期和準確的診斷是有效開發和使…

Linux按鍵輸入實驗-對按鍵驅動進行測試

一. 簡介 前面學習在設備樹文件中創建按鍵的設備節點,并實現對按鍵驅動代碼的編寫,文章地址如下:Linux按鍵輸入實驗-創建按鍵的設備節點-CSDN博客Linux按鍵輸入實驗-按鍵的字符設備驅動代碼框架-CSDN博客Linux按鍵輸入實驗-按鍵的GPIO初始化-CSDN博客 本文對所實現的按鍵驅…

【精品】集合list去重

示例一&#xff1a;對于簡單類型&#xff0c;比如String public static void main(String[] args) {List<String> list new ArrayList< >();list.add("aaa");list.add("bbb");list.add("bbb");list.add("ccc");list.add(…

網絡工程師必備的網絡端口大全(建議收藏)

端口是一種數字標識&#xff0c;用于在計算機網絡中進行通信&#xff0c;你完全可以把端口簡單的理解為是計算機和外界通訊交流的出口。但在網絡技術中&#xff0c;端口一般有兩種含義&#xff1a; &#xff08;1&#xff09;硬件設備中的端口 如交換機、路由器中用于鏈接其他…

用stream流將list轉為map

用stream流將list轉為map 1、將list轉為Map<Long, List> 按照spaceId分組&#xff0c;spaceId相同的為一組數據&#xff1a; List<BasEvaluationPriceResultDto> list new ArrayList(); Map<Long, List<BasEvaluationPriceResultDto>> priceResult…

“金三銀四”招聘季,大廠爭招鴻蒙人才

在金三銀四的招聘季中&#xff0c;各大知名互聯網企業紛紛加入了對鴻蒙人才的爭奪戰。近日&#xff0c;包括淘寶、京東、得物等在內的知名APP均宣布啟動鴻蒙星河版原生應用開發計劃。這一舉措不僅彰顯了鴻蒙生態系統的迅猛發展&#xff0c;還催生了人才市場的繁榮景象。據數據顯…

遙感影像處理(ENVI+ChatGPT+python+ GEE)處理高光譜及多光譜遙感數據

遙感技術主要通過衛星和飛機從遠處觀察和測量我們的環境&#xff0c;是理解和監測地球物理、化學和生物系統的基石。ChatGPT是由OpenAI開發的最先進的語言模型&#xff0c;在理解和生成人類語言方面表現出了非凡的能力。本文重點介紹ChatGPT在遙感中的應用&#xff0c;人工智能…

vue3學習 【4】ref和reactive的使用并于ts結合

使用ref聲明一個響應式對象并使用 <script lang"ts" setup> import { ref } from vue; const message ref("HelloWorld") message.value"被修改了啊~~" </script> <template>{{ message }} </template>ref() 接收參數…

Vue——攜帶參數跳轉路由

Vue學習之——跳轉路由 前情回顧 當我們進行點擊修改時&#xff0c;會進行跳轉到修改頁面&#xff0c;為了完成回顯數據&#xff08;根據對應id查找&#xff09;&#xff0c;我們需要攜帶對應選擇中的id跳轉到修改頁面&#xff0c;讓其進行查找回顯 學習useRoute和useRoute…

webstorm2023.3.4安裝與破解

WebStorm安裝步驟 打開JetBrains官方網站&#xff08;https://www.jetbrains.com/webstorm/&#xff09; 運行.exe 選擇安裝路徑 第一個意思是是否創建桌面快捷方式&#xff0c;可根據需要選擇&#xff1b;第二個.js .css .html勾選后之后js css html文件默認會用webstor…

AI Agent

目錄 一、什么是Agent 二、什么是MetaGPT【多智能體框架介紹】 三、MetaGPT的背景 一、什么是Agent 智能體 LLM觀察思考行動記憶 Agent&#xff08;智能體&#xff09; 一個設置了一些目標或任務&#xff0c;可以迭代運行的大型語言模型。這與大型語言模型&#xff08;LLM&am…

985機械研一轉碼,java還是c++?

985機械研一轉碼&#xff0c;java還是c&#xff1f; 在開始前我分享下我的經歷&#xff0c;我剛入行時遇到一個好公司和師父&#xff0c;給了我機會&#xff0c;一年時間從3k薪資漲到18k的&#xff0c; 我師父給了一些 電氣工程師學習方法和資料&#xff0c;讓我不斷提升自己&…

一鍵下載電路(for STM32 and mcuisp)

一鍵下載電路 1. STM32 一鍵下載電路2. 燒錄軟件&#xff1a;mcuisp和FlyMcu下載3. 遇到問題 1. STM32 一鍵下載電路 博文連接 2. 燒錄軟件&#xff1a;mcuisp和FlyMcu下載 mcuisp和FlyMcu下載 3. 遇到問題 按如上博文電路設計&#xff0c;上電發現程序沒有進入 main() 函…

【OpenGL的著色器03】內置變量(gl_Position等)

目錄 一、說明 二、著色器的變量 2.1 著色器變量 2.2 著色器內置變量 三、最常見內置變量使用范例 3.1 常見著色器變量 3.2 示例1&#xff1a; gl_PointSize 3.3 示例2&#xff1a;gl_Position 3.4 gl_FragColor 3.5 渲染點片元坐標gl_PointCoord 3.6 gl_PointCoo…

【PyTorch][chapter 20][李宏毅深度學習]【無監督學習][ GAN]【實戰】

前言 本篇主要是結合手寫數字例子,結合PyTorch 介紹一下Gan 實戰 第一輪訓練效果 第20輪訓練效果,已經可以生成數字了 68 輪 目錄&#xff1a; 谷歌云服務器&#xff08;Google Colab&#xff09; 整體訓練流程 Python 代碼 一 谷歌云服務器&#xff08;Google Colab&…

Linux學習-字符串數組和字符串

目錄 使用場景 字符型數組定義&#xff1a; 初始化 數組儲存 打印 字符型數組常見函數 常見操作 strcpy&#xff1a;字符串拷貝 strcat&#xff08;str1&#xff0c;str2&#xff09;字符串拼接 strcmp&#xff1a;字符串比較 注意&#xff1a; 二維字符型數…

Open CASCADE學習|曲線曲面連續性

1、曲線的連續性 曲線的連續性是三維建模、動畫設計等領域中非常重要的一個概念&#xff0c;它涉及到曲線在不同點之間的連接方式和光滑程度。下面將詳細介紹曲線的連續性&#xff0c;包括C連續性和G連續性。 1.1C連續性&#xff08;參數連續性&#xff09; C連續性是指曲線…

使用MyBatisPlus實現向數據庫中存儲List類型的數據

使用MyBatisPlus實現向數據庫中存儲List類型的數據 問題描述 建表時&#xff0c;表中的這五個字段為json類型 但是在入庫的時候既不能寫入數據&#xff0c;也不能查詢出數據。 解決方案&#xff1a; 1.首先明確&#xff0c;數據存入的時候是經過了數據類型轉化&#xff0c…

中國電子學會2020年06月真題C語言軟件編程等級考試三級(含詳細解析答案)

中國電子學會考評中心歷屆真題&#xff08;含解析答案&#xff09; C語言軟件編程等級考試三級 2020年06月 編程題五道 總分:100分一、最接近的分數&#xff08;20分&#xff09; 分母不超過N且小于A/B的最大最簡分數是多少? 時間限制: 1000ms 內存限制: 65536kb 輸入…

數據之光:探索數據庫技術的演進之路

?? 歡迎大家來訪Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭?&#xff5e;?? &#x1f31f;&#x1f31f; 歡迎各位親愛的讀者&#xff0c;感謝你們抽出寶貴的時間來閱讀我的文章。 我是Srlua&#xff0c;在這里我會分享我的知識和經驗。&#x…