Python中列表的基本操作匯總
1、列表的創(chuàng)建與遍歷
與整數(shù)和字符串不同,列表要處理一組數(shù)據(jù)。因此,列表必須通過(guò)顯式的數(shù)據(jù)賦值才能生成,簡(jiǎn)單將一個(gè)列表賦值給另一個(gè)列表不會(huì)生成新的列表對(duì)象,只會(huì)對(duì)原有列表生成一個(gè)新的引用。
#創(chuàng)建列表 list =[1,2,3,4,5] list2=list print(list==list2)# True 就算新建一個(gè)列表,然后將原有的值賦值給新的列表。新的列表和原列表還是指向的同一個(gè)地址 list[0]=0 print(list,list2) #修改list列表的同時(shí)也修改了list2,因?yàn)閘ist和list2都是指向的同一個(gè)地址 print("====================================") length=len(list)#獲取列表長(zhǎng)度 #遍歷 i=0 #為了方便后續(xù)操作的觀察,這里采用不換行輸出 while(i<length): if (i < length-1): print(list[i], end=',') else: print(list[i],end='') print() i+=1 print("====================================") for x in list: if (x <length): print(x, end=',') else: print(x,end='') print() # print(x) print("====================================")
2、添加元素
列表可以使用append()、extend()或insert()方法來(lái)添加元素
2.1、append()方法
在列表末尾添加新的元素
語(yǔ)法格式:list.append(obj)
其中,list表示列表,obj表示添加到列表末尾的對(duì)象
#在列表末尾添加元素 list.append(6) print(list) ##[0, 2, 3, 4, 5, 6]
2.2、extend()方法
在列表末尾一次性添加另一個(gè)序列中的多個(gè)值(用新列表擴(kuò)展原來(lái)的列表)
語(yǔ)法格式:list.extend(seq)
其中,list表示列表,seq表示添加到列表末尾的序列
#在列表末尾一次性添加另一個(gè)序列中的多個(gè)值 list3=[7,8] list.extend(list3) print(list) #[0, 2, 3, 4, 5, 6, 7, 8]
2.3、insert()方法
將指定對(duì)象插入到列表的指定位置
語(yǔ)法格式:list.insert(index,obj)
其中,list表示列表,index表示插入的索引位置,obj表示插入列表中的對(duì)象
#將元素添加到指定位置,例:在索引位置為1的地方插入1 list.insert(1,1) print(list) #[0, 1, 2, 3, 4, 5, 6, 7, 8]
3、刪除元素
在列表中,刪除元素的常用方法有:del命令、pop()方法和remove()方法
3.1、del命令
根據(jù)索引刪除列表中的元素
#根據(jù)索引刪除元素,例:刪除索引位置為0的元素 del list[0] print(list) #[1, 2, 3, 4, 5, 6, 7, 8] #使用分片的方式輸出列表中的元素 del list[5:7] #包前不包后,5:7即刪除索引為5、6的元素 print(list) #[1, 2, 3, 4, 5, 8]
3.2、pop()方法
根據(jù)索引刪除列表中的元素,并返回該元素的值
語(yǔ)法格式:list.pop([index])
其中,list表示列表。index表示刪除列表元素的索引值,為可選參數(shù),缺省時(shí)為-1,刪除列表中的最后一個(gè)元素。
#根據(jù)索引刪除列表中的元素,并返回該元素的值 print(list.pop(5)) #8 print(list) #[1, 2, 3, 4, 5] #如果沒(méi)給索引,則默認(rèn)刪除列表最后一個(gè)元素。即彈棧/出棧 # print(list.pop()) # print(list)
3.3、remove()方法
remove()方法只能刪除列表中某個(gè)值的第一個(gè)匹配項(xiàng),如果要?jiǎng)h除所有匹配的元素就需要搭配循環(huán)語(yǔ)句實(shí)現(xiàn)。
語(yǔ)法格式:list.remove(obj)
#刪除某個(gè)值的第一個(gè)匹配值 list.remove(3) print(list) #[1, 2, 4, 5]
4、分片賦值
分片賦值就是以分片的形式給列表賦值,可以一次為多個(gè)元素賦值
#替換索引從1包括1開(kāi)始到最后的元素 list[1:]=[3,6,9] print(list) #[1, 3, 6, 9]
分片賦值還可以在不替換任何原有元素的情況下插入新的元素
#在索引為2的位置插入列表[4,5] #[2:1]如果后面的1變成2或者更大的數(shù),則會(huì)依次覆蓋/刪除插入位置后面的數(shù) list[2:1]=[4,5] print(list) #[1, 3, 4, 5, 6, 9]
分片賦值也可以刪除元素
#刪除元素 num=[1,2,3,4,5,6] print(num) #[1, 2, 3, 4, 5, 6] num[1:5]=[] #用空列表替換列表中索引1到索引5(不含)的元素 print(num) #[1, 6]
5、列表排序
將列表中的元素排序的方法有3種,分別是reverse()方法、sort()方法和sorted()函數(shù)
5.1、reverse()方法
將列表中的元素反向存放
語(yǔ)法格式:list.reverse()
#將列表元素反轉(zhuǎn) list.reverse() print(list) #[9, 6, 5, 4, 3, 1]
5.2、sort()方法
將列表中的元素進(jìn)行排序(默認(rèn)為升序)
語(yǔ)法格式:list.sort([key=None])[,reverse=False])
其中,list表示列表,key為可選參數(shù),如果指定了該參數(shù),會(huì)使用該參數(shù)的方法進(jìn)行排序。reverse為可選參數(shù),表示是否降序排序,缺省時(shí)為False
#將列表排序(默認(rèn)為升序) list.sort() print(list) #[1, 3, 4, 5, 6, 9] #改為降序排序 list.sort(reverse=True) print(list) #[9, 6, 5, 4, 3, 1] #按元素長(zhǎng)度進(jìn)行排序(默認(rèn)升序) list4=["hello","P","yt","hon"] list4.sort(key=len) print(list4) #['P', 'yt', 'hon', 'hello'] #降序 list4.sort(key=len,reverse=True) print(list4) #['hello', 'hon', 'yt', 'P']
5.3、sorted()函數(shù)
與sort()方法不同,內(nèi)置函數(shù)sorted()返回新列表,并不對(duì)原列表進(jìn)行任何修改
語(yǔ)法格式:sorted(iterable[,key=None][,reverse=False])
其中,iterable表示可迭代對(duì)象,如列表。參數(shù)key和reverse的用法與sort()方法中的相同
#內(nèi)置函數(shù)sorted()返回新列表,不對(duì)原列表進(jìn)行修改 list5=[5,3,4,2,1] list5_new=sorted(list5) print(list5==list5_new) # False 列表地址不一致 print(list5) #原列表不變 [5, 3, 4, 2, 1] print(list5_new) #新列表按升序排列 [1, 2, 3, 4, 5] #降序 list6=sorted(list5,reverse=True) print(list6==list5) #False print(list6) #[5, 4, 3, 2, 1]
完整代碼
list =[1,2,3,4,5] list2=list print(list==list2)# True 就算新建一個(gè)列表,然后將原有的值賦值給新的列表。新的列表和原列表還是指向的同一個(gè)地址 list[0]=0 print(list,list2) #修改list列表的同時(shí)也修改了list2,因?yàn)閘ist和list2都是指向的同一個(gè)地址 print("====================================") length=len(list)#獲取列表長(zhǎng)度 #遍歷 i=0 #為了方便后續(xù)操作的觀察,這里采用不換行輸出 while(i<length): if (i < length-1): print(list[i], end=',') else: print(list[i],end='') print() i+=1 print("====================================") for x in list: if (x <length): print(x, end=',') else: print(x,end='') print() # print(x) print("====================================") # 添加元素 print("添加元素:") #在列表末尾添加元素 list.append(6) print(list) ##[0, 2, 3, 4, 5, 6] #在列表末尾一次性添加另一個(gè)序列中的多個(gè)值 list3=[7,8] list.extend(list3) print(list) #[0, 2, 3, 4, 5, 6, 7, 8] #將元素添加到指定位置,例:在索引位置為1的地方插入1 list.insert(1,1) print(list) #[0, 1, 2, 3, 4, 5, 6, 7, 8] print("====================================") #刪除元素 print("刪除元素:") #根據(jù)索引刪除元素,例:刪除索引位置為0的元素 del list[0] print(list) #[1, 2, 3, 4, 5, 6, 7, 8] #使用分片的方式輸出列表中的元素 del list[5:7] #包前不包后,5:7即刪除索引為5、6的元素 print(list) #[1, 2, 3, 4, 5, 8] #根據(jù)索引刪除列表中的元素,并返回該元素的值 print(list.pop(5)) #8 print(list) #[1, 2, 3, 4, 5] #如果沒(méi)給索引,則默認(rèn)刪除列表最后一個(gè)元素。即彈棧/出棧 # print(list.pop()) # print(list) #刪除某個(gè)值的第一個(gè)匹配值 list.remove(3) print(list) #[1, 2, 4, 5] print("====================================") #分片賦值 print("分片賦值:") #替換索引從1包括1開(kāi)始到最后的元素 list[1:]=[3,6,9] print(list) #[1, 3, 6, 9] #在索引為2的位置插入列表[4,5] #[2:1]如果后面的1變成2或者更大的數(shù),則會(huì)依次覆蓋/刪除插入位置后面的數(shù) list[2:1]=[4,5] print(list) #[1, 3, 4, 5, 6, 9] #刪除元素 num=[1,2,3,4,5,6] print(num) #[1, 2, 3, 4, 5, 6] num[1:5]=[] #用空列表替換列表中索引1到索引5(不含)的元素 print(num) #[1, 6] print("====================================") #列表排序 print("排序:") #將列表元素反轉(zhuǎn) list.reverse() print(list) #[9, 6, 5, 4, 3, 1] #將列表排序(默認(rèn)為升序) list.sort() print(list) #[1, 3, 4, 5, 6, 9] #改為降序排序 list.sort(reverse=True) print(list) #[9, 6, 5, 4, 3, 1] #按元素長(zhǎng)度進(jìn)行排序(默認(rèn)升序) list4=["hello","P","yt","hon"] list4.sort(key=len) print(list4) #['P', 'yt', 'hon', 'hello'] #降序 list4.sort(key=len,reverse=True) print(list4) #['hello', 'hon', 'yt', 'P'] print("---------------------------------------") #內(nèi)置函數(shù)sorted()返回新列表,不對(duì)原列表進(jìn)行修改 list5=[5,3,4,2,1] list5_new=sorted(list5) print(list5==list5_new) # False 列表地址不一致 print(list5) #原列表不變 [5, 3, 4, 2, 1] print(list5_new) #新列表按升序排列 [1, 2, 3, 4, 5] #降序 list6=sorted(list5,reverse=True) print(list6==list5) #False print(list6) #[5, 4, 3, 2, 1]
到此這篇關(guān)于Python中列表的基本操作匯總的文章就介紹到這了,更多相關(guān)Python列表操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python爬蟲(chóng)之Selenium下拉框處理的實(shí)現(xiàn)
這篇文章主要介紹了Python爬蟲(chóng)之Selenium下拉框處理的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Python中關(guān)于字符串對(duì)象的一些基礎(chǔ)知識(shí)
這篇文章主要介紹了詳解Python中的字符串對(duì)象,關(guān)于字符串的操作和特性是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-04-04使用Python求解帶約束的最優(yōu)化問(wèn)題詳解
今天小編就為大家分享一篇使用Python求解帶約束的最優(yōu)化問(wèn)題詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02分享8點(diǎn)超級(jí)有用的Python編程建議(推薦)
這篇文章主要介紹了分享8點(diǎn)超級(jí)有用的Python編程建議(推薦),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-10-10pandas數(shù)據(jù)清洗,排序,索引設(shè)置,數(shù)據(jù)選取方法
下面小編就為大家分享一篇pandas數(shù)據(jù)清洗,排序,索引設(shè)置,數(shù)據(jù)選取方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05Python分聃?之?dāng)?shù)字雨加入潘周聃運(yùn)動(dòng)曲線的詳細(xì)過(guò)程
相信各位同學(xué)最近一定被潘周聃刷屏和洗腦了,互聯(lián)網(wǎng)上也出現(xiàn)了這種各樣的模仿者,下面通過(guò)本文給大家分享Python分聃之?dāng)?shù)字雨加入潘周聃運(yùn)動(dòng)曲線,需要的朋友可以參考下2022-05-05