python列表基礎知識

列表

創建列表

1.列表的定義:可變的,有序的數據結構,可以隨時添加或者刪除其中的元素

2.基本語法:字面量【元素1,元素2,元素3】==使用[]創建列表

定義變量:變量名稱【元素1,元素2,元素3】

定義空變量:變量名稱:【】;變量名稱=list【】

列表里的每一個數據稱之為數據,以[ ]作為標識,列表內每一個元素之間用逗號隔開,甚至元素本身也可以是列表,這樣就夠成了嵌套列表,列表可以存儲多種數據

name_list1=[[‘red’,’green’],[‘blue’,’white’],name1_list]

列表可以將元素修改數據類型

3.使用list()函數,創建(轉換為)列表:

this_list = list(('apple', 'banana', 'cherry'))

注意:在使用 list() 函數創建列表時,一定要注意雙括號

##訪問列表

列表的下標索引:

從前往后從0開始,依次遞增;也可以反向索引,從后往前-1,-2,-3

name_list=[‘Tom’,’Lily’,’Rose’]

print(name_list[0])------Tom

print(name_list[-2])----Lily

如果列表是嵌套的列表,同樣支持下標索引

my_list=[[1,2,3],[44,5,6]]

print(my_list2[1][1])第一個下標是確定是列表[123],再根據第二個下標取出元素

取值的時候不能發生越界,否則會報錯

列表切片

語法:list_name[start: end :step]

list_name = ['wzq', 'lgl', 'gz', 'whl', 'sj', 'hxw']
print(list_name[1:5:2])
print(list_name[-6:-1:3])
>>>最后的結果是:['lgl', 'whl']
['wzq', 'whl']

while 循環

  • 元素訪問方式 : 使用 下標索引 訪問 列表中的元素 ;

  • 循環控制 :

    循環控制變量 :用于指示當前循環的 下標索引 ;

    循環條件 :設置為 循環控制變量 ( 下標索引 ) < 列表長度 ;

    • # 循環控制變量定義 對應下標索引
      index = 0
      while index < len(列表變量):# 使用 下標索引 取出列表元素, 使用變量接收列表元素變量 = 列表變量[index]# 處理元素# 下標索引變量 ( 循環控制變量 ) 自增 1 index += 1

for循環遍歷列表

fruit_list = ['apple', 'pear', 'cherry']
for i in fruit_list:print(i)
>>>apple
pear
cherry

檢查項目是否存在

使用in關鍵字:

# 檢查列表中是否存在'apple'
fruit_list = ['apple', 'pear', 'cherry']
print('apple' in fruit_list)
>>>結果:True

##更改列表值(追加,插入,刪除)

(1)創建列表后,可以直接對列表中的數據項進行修改或者是更新

fruit_list = ['apple', 'pear', 'cherry']
fruit_list[2] = 'banana'
print(fruit_list)
>>>['apple', 'pear', 'banana']
內置方法

(2)列表.append(元素):向列表中追加一個元素

mylist=[“itCSDN”,”itlove”,”python”]
mylist.append(“CSDN程序員”)
print(f”列表再追加了元素之后,結果是:{mylist}”)
<<<最終的結果是:[‘itCSDN’,’itlove’,’python’,’CSDN程序員’]

(3)列表.insert(下標,元素)在指定下標處,插入指定的元素

語法:list.insert(position, element)

mylist=[“itCSDN”,”itlove”,”python”]
mylist.insert(1,“best”)
print(f”列表插入元素之后,結果是{mylist})
>>>最后的結果是:[“itCSDN”,“best”,”itlove”,”python”]

append()只能在末尾處添加元素或者是列表,insert()可以在任意位置添加元素或者是列表

(4)列表.extend(容器):將數據容器的內容依次取出,追加到列表尾部,依次添加(用列表擴展原來的列表)

mylis1t=[“itCSDN”,”itlove”,”python”]
mylist2=[1,2,3]
mylist1.extend(mylist2)
print(f”列表在追加了一個個新的列表之后,結果是{mylist1})
<<<最后的結果是[‘itCSDN’,’itlove’,’python’,1,2,3]
aver = ['A', 'B', 'C']
str1 = 'Hello'
aver.extend(str1)
print(aver)
>>>['A', 'B', 'C', 'H', 'e', 'l', 'l', 'o']

在 Python 中,list.extend() 方法用于將一個可迭代對象(如字符串、列表等)的所有元素添加到列表的末尾。當你將一個字符串傳遞給 extend() 方法時,字符串會被視為一個可迭代對象,因此它會將字符串中的每個字符作為單獨的元素添加到列表中。

(5) del列表[下標]:刪除列表指定下標元素或者刪除整個列表

mylist=[“itCSDN”,”itlove”,”python”]
del mylist[2]
print(f”列表刪除的元素之后的結果是:{mylist}”)
>>>最后的結果是[“itCSDN”,”itlove”]
list_de = ['Baidu', 'Alibaba', 'Tencent', 'Bytedance']
del list_de
>>>再次打印輸出會發生報錯,表明該列表未被定義

(6)列表.pop(下標pos):刪除列表指定下標元素,pos可選,指定需要刪除元素 的位置,默認值為-1,即默認刪除最后的元素

fruits = ['apple', 'banana', 'cherry']
fruits.pop()
print(fruits)
>>>['apple', 'banana']
fruits = ['apple', 'banana', 'cherry']
fruits.pop(1)
print(fruits)
>>>['apple', 'cherry']
mylist=[“itCSDN”,”itlove”,”python”]
element=list。pop(2)
print(f”通過pop的方法取出元素后的列表內容是:{mylist},取出的元素是:{element})
>>>最后的結果是:[“itCSDN”,”itlove”],取出的元素是python

pop與del的區別是不但能把元素刪掉,還能把刪除元素作為返回值得到

(7)列表.remove(元素):刪除元素的第一個匹配項

mylist=[“itCSDN”,”itlove”,”python”]
mylist.remove(“itlove”)
print(f”通過remove方法移除元素之后,列表的結果是:{mylist}”)
>>>最后的結果是[“itCSDN”,”python”]

當被刪除的元素在列表中存在多個時,默認刪除首次出現的那個。

(8)列表.clear():清空列表

mylist=[“itCSDN”,”itlove”,”python”]
mylist.clear()
print(f”列表清空之后的結果是:{mylist}”)
>>>最后的結果是:[]

列表統計

(1)列表.count(元素):統計此元素在列表中出現的次數

mylist = ["itCSDN", "itlove", "itlove", "itlove", "python"]
count = mylist.count("itlove")
print(f"列表中itlove的數量是:{count}")
>>>最后的結果是3

(2)列表.index(元素):查找指定元素在列表的第一個下標,找不到就報錯ValueError

mylist = ["itCSDN", "itlove", "python"]
index = mylist.index("itlove")
print(f"itlove在列表中的下標索引值是:{index}")
>>>最后的結果是1

當被搜索值在列表中多次出現時,僅返回首次出現的位置。

(3)len(列表):統計容器內有多少元素

mylist = ["itCSDN", "itlove", "python"] 
count = len(mylist)
print(f"列表的元素數量總共有:{count}個")
>>>最后的結果是3

多個列表

列表的連接(合并)/復制

與字符串一樣,列表之間可以使用 + 號和 * 號實現元組的連接和復制,這就意味著它們可以生成一個新的列表。

1、+連接(合并)

x = [1, 2, 3]
y = [4, 5, 6]
print(x + y)
#[1, 2, 3, 4, 5, 6]

2、*復制

x = ['Hello']
print(x * 5)
#['Hello', 'Hello', 'Hello', 'Hello', 'Hello']
嵌套列表

使用嵌套列表即在列表里面創建其他列表。

x = [1, 2, 3]
y = ['a', 'b', 'c']
z = [x, y]
print(z)
1234
[[1, 2, 3], ['a', 'b', 'c']]

復制列表

list.copy()

fruits = ['apple', 'banana', 'cherry', 'orange']
x = fruits.copy()
print(x)
>>>['apple', 'banana', 'cherry', 'orange']
list1 = ['apple', 'banana', 'cherry']
list_2 = list(list1)

列表排序

(1)sort():用于對原列表進行排序,如果指定參數,則使用比較函數指定的比較函數

語法:list.sort(reverse=True|False, key=myFunc)

reverse:reverse=True是對列表進行降序排列,默認是reverse=False

key:指定排序標準的函數

words = ['Name', 'Gender', 'Age', 'Height', 'Weight']
words.sort()
print(words)
>>>['Age', 'Gender', 'Height', 'Name', 'Weight']
words = ['Name', 'Gender', 'Age', 'Height', 'Weight']
words.sort(reverse=True)
print(words)
>>>['Weight', 'Name', 'Height', 'Gender', 'Age']

(2)顛倒列表順序:list.reverse()

fruits = ['apple', 'banana', 'cherry']
fruits.reverse()
print(fruits)
>>>['cherry', 'banana', 'apple']
函數描述
print()打印輸出
len()確定列表的長度
type()輸出變量的類型
list()定義列表(轉換為列表)
max()返回列表元素的最大值
min()返回列表的最小值
del刪除整個列表或者通過索引刪除列表中的某個元素
append(obj)在列表末尾添加一個元素
insert(index, obj)在指定的位置插入一個元素
extend(seq)將列表元素添加到當前列表的末尾
count(obj)統計某個元素在列表中出現的次數
index(obj)查找元素在列表的第一個匹配項的索引
sort( key=None, reverse=False)正向排序
copy()復制列表
reverse()逆向排序
pop([-1])刪除列表的最后一個元素,并且返回該元素
remove(obj)移除列表中某個值的第一個匹配項
clear()清空列表

列表推導式

  • [表達式 for 變量 in 列表]:當變量遍歷列表時,得到由對應的表達式結果組成的列表
  • [表達式 for 變量 in 列表 if 條件]:變量遍歷列表,并且滿足if后面的條件時,得到的是由表達式運算結果組成的列表
  • [表達式 for 變量 in 取值范圍]:變量在取值范圍內的遍歷,然后通過表達式運算得到結果列表

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

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

相關文章

Node.js 的模塊作用域和 module 對象詳細介紹

目錄 代碼示例 1. 創建模塊文件 module-demo.js 2. 導入模塊并使用 module-demo.js 運行結果 總結 在 Node.js 中&#xff0c;每個文件都是一個獨立的模塊&#xff0c;具有自己的作用域。與瀏覽器 JavaScript 代碼不同&#xff0c;Node.js 采用模塊作用域&#xff0c;這意味…

美暢物聯丨WebRTC 技術詳解:構建實時通信的數字橋梁

在互聯網技術飛速發展的今天&#xff0c;實時通信已成為數字生活的核心需求。WebRTC作為一個開源項目&#xff0c;憑借卓越的技術實力與創新理念&#xff0c;為網頁和移動應用帶來了顛覆性的實時通信能力。它突破了傳統通信方式的限制&#xff0c;實現了音頻、視頻和數據在用戶…

excel中兩個表格的合并

使用函數&#xff1a; VLOOKUP函數 如果涉及在excel中兩個工作表之間進行配對合并&#xff0c;則&#xff1a; VLOOKUP(C1,工作表名字!A:B,2,0) 參考&#xff1a; excel表格中vlookup函數的使用方法步驟https://haokan.baidu.com/v?pdwisenatural&vid132733503560775…

單引號與雙引號在不同編程語言中的使用與支持

在編程語言中&#xff0c;單引號和雙引號是常見的符號&#xff0c;它們通常用來表示字符和字符串。然而&#xff0c;如何使用這兩種符號在不同的編程語言中有所不同&#xff0c;甚至有一些語言并不區分單引號和雙引號的用途。本文將詳細介紹不同編程語言中單引號與雙引號的支持…

怎么鑒別金媒v10.51和v10.5的區別!單單從CRM上區分!

2.怎么鑒別程序是10.5還是10.51 &#xff1f;* 作為商業用戶&#xff0c;升級完全沒有這個擔心&#xff0c;但是這次升級從全局來看清晰度不是很高&#xff0c;不像10.5的升級后臺UI都變化了&#xff01;你說有漏洞但是我沒遇到過 所以我也不知道升級了啥只能看版本數字是無法區…

python腳本實現服務器內存和cpu使用監控,并記錄日志,可以設置閾值和采樣頻率

Python 腳本&#xff0c;實現以下功能&#xff1a; 按日期自動生成日志文件&#xff08;例如 cpu_mem_20231001.csv&#xff09;當 CPU 或內存超過閾值時觸發記錄獨立記錄報警事件&#xff08;保存到 alert.log&#xff09;支持自定義閾值和監控間隔 腳本代碼 import psutil …

【Oracle】19c數據庫控制文件多路徑配置

一、關閉數據庫&#xff08;2個節點實例都要關閉&#xff09; srvctl stop database -d ora19c 二、多路徑控制文件 打開其中一個節點到nomount狀態 sqlplus / as sysdba startup nomount; [oracleora19c1:/home/oracle]$ rman target / RMAN> restore controlfile to…

大模型訓練全流程深度解析

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到網站。https://www.captainbed.cn/north 文章目錄 1. 大模型訓練概覽1.1 訓練流程總覽1.2 關鍵技術指標 2. 數據準備2.1 數據收集與清洗2.2 數據…

【Linux】進程(1)進程概念和進程狀態

&#x1f31f;&#x1f31f;作者主頁&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所屬專欄&#xff1a;Linux 目錄 前言 一、什么是進程 二、task_struct的內容 三、Linux下進程基本操作 四、父進程和子進程 1. 用fork函數創建子進程 五、進程狀態 1. 三種重…

lws-minimal-ws-server前端分析

index.html index.html是前端入口 <html><head><meta charsetutf-8 http-equiv"Content-Language" content"en"/><!-- 引入js --><script src"/example.js"></script></head><body><img s…

L1-7 統一命名規范(java)

你所在的公司剛剛招收了幾位程序員&#xff0c;然而這些程序員之前在不同的公司工作&#xff0c;所以他們習慣的變量命名規范可能存在差異&#xff0c;需要讓他們都習慣公司要求的命名規范&#xff0c;然而這樣可能會降低他們的工作效率。 你的上司找到了你&#xff0c;希望你…

Flexus應用服務器L實例、X實例以及ECS(彈性計算服務)之間的區別及其適用場景

為了更好地理解Flexus應用服務器L實例、X實例以及ECS&#xff08;彈性計算服務&#xff09;之間的區別及其適用場景&#xff0c;下面我將通過具體的例子來說明每種類型的使用情況。 1. Flexus L實例 特點: 針對高并發和負載均衡進行了優化。它可能包括更快的網絡接口、更高效…

WebRTC中音視頻服務質量QoS之RTT衡量網絡往返時延的加權平均RTT計算機制?詳解

WebRTC中音視頻服務質量QoS之RTT衡量網絡往返時延加權平均RTT計算機制?的詳解 WebRTC中音視頻服務質量QoS之RTT衡量網絡往返時延加權平均RTT計算機制?的詳解 WebRTC中音視頻服務質量QoS之RTT衡量網絡往返時延加權平均RTT計算機制?的詳解前言一、 RTT 網絡往返時延的原理?1、…

odbus TCP轉Modbus RTU網關快速配置案例

Modbus TCP 轉Modbus RTU網關快速配置案例 在工業自動化領域&#xff0c;Modbus 協議以其簡潔和高效而著稱&#xff0c;成為眾多設備通信的首選。 隨著技術的發展和應用場景的變化&#xff0c;Modbus 協議也發展出了不同的版本&#xff0c;其中 Modbus TCP 和 Modbus RTU 是兩種…

《高效遷移學習:Keras與EfficientNet花卉分類項目全解析》

從零到精通的遷移學習實戰指南&#xff1a;以Keras和EfficientNet為例 一、為什么我們需要遷移學習&#xff1f; 1.1 人類的學習智慧 想象一下&#xff1a;如果一個已經會彈鋼琴的人學習吉他&#xff0c;會比完全不懂音樂的人快得多。因為TA已經掌握了樂理知識、節奏感和手指…

WSL2 Ubuntu安裝GCC不同版本

WSL2 Ubuntu安裝GCC不同版本 介紹安裝gcc 7.1方法 1&#xff1a;通過源碼編譯安裝 GCC 7.1步驟 1&#xff1a;安裝編譯依賴步驟 2&#xff1a;下載 GCC 7.1 源碼步驟 3&#xff1a;配置和編譯步驟 4&#xff1a;配置環境變量步驟 5&#xff1a;驗證安裝 方法 2&#xff1a;通過…

淘寶API vs 爬蟲:合規獲取實時商品數據的成本與效率對比

以下是淘寶 API 和爬蟲在合規獲取實時商品數據方面的成本與效率對比&#xff1a; 成本對比 淘寶 API 開發成本&#xff1a;需要申請開發者賬號并獲取 API 權限&#xff0c;部分敏感或高頻訪問的接口可能需要額外的審核或付費。開發過程中需要按照平臺規定進行編程&#xff0c;相…

Android 手機啟動過程

梳理 為了梳理思路&#xff0c;筆者畫了一幅關于 Android 手機啟動的過程圖片內容純屬個人見解&#xff0c;如有錯誤&#xff0c;歡迎各位指正

【Linux】:封裝線程

朋友們、伙計們&#xff0c;我們又見面了&#xff0c;本期來給大家帶來封裝線程相關的知識點&#xff0c;如果看完之后對你有一定的啟發&#xff0c;那么請留下你的三連&#xff0c;祝大家心想事成&#xff01; C 語 言 專 欄&#xff1a;C語言&#xff1a;從入門到精通 數據結…

正則表達式全解析 + Java常用示例

目錄 一、正則表達式基礎&#xff08;一&#xff09;元字符&#xff08;二&#xff09;字符集&#xff08;三&#xff09;量詞 二、正則表達式常用示例&#xff08;一&#xff09;驗證郵箱格式&#xff08;二&#xff09;驗證電話號碼格式&#xff08;三&#xff09;提取網頁中…