Python列表list的詳細(xì)用法介紹
一. 創(chuàng)建列表
列表(list)作為Python中基本的數(shù)據(jù)結(jié)構(gòu),是存儲(chǔ)數(shù)據(jù)的容器,相當(dāng)于其它語(yǔ)言中所說的數(shù)組。
模擬出的結(jié)構(gòu)如下:
創(chuàng)建列表有兩種方式:
1.1 第一種
使用“[ ]”進(jìn)行創(chuàng)建,內(nèi)部元素可以是任意數(shù)據(jù)類型:
list1=["Hello","world",True,0.01,12]
1.2 第二種
使用Python中內(nèi)置函數(shù)list()
list2=list(["Hello","world",True,0.01,12])
列表的特點(diǎn)總結(jié):
列表元素是按照有序順序進(jìn)行排序的每個(gè)索引對(duì)應(yīng)一個(gè)數(shù)據(jù)列表數(shù)據(jù)可以重復(fù)存儲(chǔ)內(nèi)部元素可以是任意數(shù)據(jù)類型根據(jù)內(nèi)部元素多少動(dòng)態(tài)分配內(nèi)存空間
二. 查詢列表
2.1 獲取列表元素索引
使用index()函數(shù)獲取元素索引,若列表中有重復(fù)元素,只獲取第一個(gè)位置的索引,元素不存在會(huì)拋出錯(cuò)誤。
list1 = ["Hello","Hello",True,0.01,12] # 索引為 0 print(list1.index("Hello")) # 索引為 4 print(list1.index(12)) # 索引不存在 ValueError: 100 is not in list print(list1.index(100))
給index()函數(shù)設(shè)置參數(shù),可以在指定的范圍內(nèi)查找元素的索引位置
list1 = ["Hello", "Hello", True, 0.01, 12] # 從索引1開始到索引4結(jié)束,不包括索引4,查找元素True的索引為2 print(list1.index(True, 1, 4))
2.2 獲取列表單個(gè)元素
對(duì)于一個(gè)列表,索引從前往后下標(biāo)是從0~N-1,從后往前是-N~-1,N表示元素個(gè)數(shù)。
list1 = ["Hello", "Hello", True, 0.01, 12] # 獲取索引為2的元素 True print(list1[2]) # 獲取索引為-1的元素 12 print(list1[-1]) # IndexError: list index out of range print(list1[5])
2.3 獲取列表多個(gè)元素
使用索引只能獲取一個(gè)元素,想要獲取列表中多個(gè)元素使用切片。
公式:列表名[start : stop :step],意思是從哪里開始到哪里結(jié)束,可以定義步長(zhǎng)(默認(rèn)步長(zhǎng)為1,step不能為0)。
對(duì)于切片的結(jié)果就是對(duì)原列表的拷貝生成一個(gè)新的列表對(duì)象。
切片的用法如下:
list1 = ["Hello", "Hello", True, 0.01, 12, 32, 34] # 取索引1~6,默認(rèn)步長(zhǎng)為1:['Hello', True, 0.01, 12, 32] print(list1[1:6:]) # 取索引1~6,['Hello', True, 0.01, 12, 32] print(list1[1:6:1]) # 取索引1~6,步長(zhǎng)為2:['Hello', 0.01, 32] print(list1[1:6:2]) # start不寫,默認(rèn)從0開始:['Hello', True, 12] print(list1[:6:2]) # ['Hello', True, 12] print(list1[0:6:2]) # stop不寫, print(list1[0::2]) # step為負(fù)數(shù) -1 [34, 32, 12, 0.01, True, 'Hello', 'Hello'] print(list1[::-1]) # [34, 12, True, 'Hello'] print(list1[::-2]) # [32, 12, 0.01, True, 'Hello', 'Hello'] print(list1[5::-1]) # [32, 12, 0.01, True] print(list1[5:1:-1])
注意:若step為負(fù)數(shù)則是從后往前開始截取切片。
2.3 判斷元素是否存在于列表
使用in或者not in,輸出的是布爾類型的值。
list1 = ["Hello", "Hello", True, 0.01, 12, 32, 34] # True print("Hello" in list1) # False print("Hello" not in list1) # False print(True not in list1) # True print(12 in list1)
遍歷列表元素:
list1 = ["Hello", "Hello", True, 0.01, 12, 32, 34] for i in list1: print(i)
三. 列表添加操作
list1=[10,20,30,40,50,60] # 在列表末尾添加一個(gè)元素 list1.append(34) # [10, 20, 30, 40, 50, 60, 34] print(list1) # 在列表末尾添加多個(gè)元素 list1.extend([21,12,34]) # [10, 20, 30, 40, 50, 60, 34, 21, 12, 34] print(list1) # 在列表任意位置添加一個(gè)元素 list1.insert(0,1) # [1, 10, 20, 30, 40, 50, 60, 34, 21, 12, 34] print(list1) # 在列表任意位置添加多個(gè)元素,會(huì)刪除切片的元素,然后添加新元素 list2=["hello",3,40] list1[5:8:]=list2 # [1, 10, 20, 30, 40, 'hello', 3, 40, 21, 12, 34] print(list1)
四. 列表刪除操作
list1 = [10, 20, 30, 40, 50, 60, 70] list1.remove(20) # [10, 30, 40, 50, 60, 70] print(list1) # 刪除索引為1的元素,不指定刪除最后一個(gè)元素 list1.pop(1) # [10, 40, 50, 60, 70] print(list1) # 切片刪除 list1[1:3] = [] # [10, 60, 70] print(list1)
五. 修改列表元素
為指定的索引修改元素值,也可以使用切片的方式修改。
list1 = [10, 20, 30, 40, 50, 60, 70] list1[3]="Hello" # [10, 20, 30, 'Hello', 50, 60, 70] print(list1) # 切片方式 list1[3:6]=[1,1,1,1] # [10, 20, 30, 1, 1, 1, 1, 70] print(list1)
六. 列表排序操作
有常見的兩種方式可以對(duì)列表中的元素進(jìn)行排序,使用sort(),或者sorted()的方式進(jìn)行排序。
兩者區(qū)別就是前者排序后不會(huì)生成新的列表對(duì)象,而后者會(huì)生成一個(gè)新的列表對(duì)象。
list1 = [10, 30, 20, 40, 80, 60] # 原來list1: 1738929360704 print("原來list1:", id(list1)) # [10, 20, 30, 40, 60, 80] 默認(rèn)升序 list1.sort() print(list1) # 后來list1: 1738929360704 print("后來list1:", id(list1)) # 指定reverse=True為降序 list1.sort(reverse=True) # [80, 60, 40, 30, 20, 10] print(list1) ################################### list2 = [10, 30, 67, 100, 80, 32] # 原來list2: 2357934175872 print("原來list2: ", id(list2)) list2 = sorted(list2) # # [10, 30, 32, 67, 80, 100] print(list2) # 后來list2: 2357931224384 print("后來list2: ", id(list2)) # 降序 list2 = sorted(list2, reverse=True) # [100, 80, 67, 32, 30, 10] print(list2)
此外,還可以使用循環(huán)生成列表,稱為列表生成式。
主要結(jié)構(gòu):
[ i*i for i in range(a,b) ]
通過一個(gè)for循環(huán)生成列表,i*i指的是計(jì)算公式。
代碼操作:
# 生成1-9的列表式子,并通過i+i計(jì)算 list1 = [i + i for i in range(1, 10)] # [2, 4, 6, 8, 10, 12, 14, 16, 18] print(list1)
以上就是對(duì)于Python列表的簡(jiǎn)單操作。
到此這篇關(guān)于Python列表list的詳細(xì)用法介紹的文章就介紹到這了,更多相關(guān)Python列表list內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python容錯(cuò)的前綴樹實(shí)現(xiàn)中文糾錯(cuò)
本文使用 Python 實(shí)現(xiàn)了前綴樹,并且支持編輯距離容錯(cuò)的查詢。文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07Python ValueError: invalid literal for int() with base 10 實(shí)用
這篇文章主要介紹了Python ValueError: invalid literal for int() with base 10 實(shí)用解決方法,本文使用了一個(gè)取巧方法解決了這個(gè)問題,需要的朋友可以參考下2015-06-06ndarray的轉(zhuǎn)置(numpy.transpose()與A.T命令對(duì)比分析)
這篇文章主要介紹了ndarray的轉(zhuǎn)置(numpy.transpose()與A.T命令對(duì)比分析),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02python中pandas庫(kù)中DataFrame對(duì)行和列的操作使用方法示例
這篇文章主要介紹了python中pandas庫(kù)中DataFrame對(duì)行和列的操作使用方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06python else語(yǔ)句在循環(huán)中的運(yùn)用詳解
這篇文章主要介紹了python else語(yǔ)句在循環(huán)中的運(yùn)用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07Python如何實(shí)現(xiàn)定時(shí)器功能
在本篇文章里小編給大家分享的是關(guān)于Python中的簡(jiǎn)單定時(shí)器實(shí)例及代碼,需要的朋友們可以學(xué)習(xí)下。2020-05-05Python OpenCV實(shí)現(xiàn)識(shí)別信用卡號(hào)教程詳解
本文將介紹如何通過 OpenCV 和 Python 使用模板匹配來執(zhí)行光學(xué)字符識(shí)別 (OCR),再應(yīng)用我們的模板匹配 OCR 方法來識(shí)別信用卡類型以及 16 位信用卡數(shù)字。代碼具有一定價(jià)值,感興趣的童鞋可以了解一下2021-11-11