Python中的列表及其操作方法
前言:
本文的主要內(nèi)容是介紹Python中的列表及其方法的使用,涉及到的方法包括對(duì)列表元素進(jìn)行修改、添加、刪除、排序以及求列表長度等,此外還介紹了列表的遍歷、數(shù)值列表、切片和元組的一些操作,文中附有代碼以及相應(yīng)的運(yùn)行結(jié)果輔助理解。
一、列表簡介
列表由一系列按特定順序排列的元素組成,它能夠在一個(gè)地方存儲(chǔ)成組的信息,其中元素的個(gè)數(shù)可以只有幾個(gè),也可以有數(shù)百萬個(gè)。
在Python中,用方括號(hào)來表示列表,并用逗號(hào)來分隔其中的元素,每個(gè)元素用單引號(hào)(也可以是雙引號(hào))括起來。
下面的代碼就是一個(gè)簡單的列表示例:
fruits = ['grape', 'apple', 'banana', 'orange', 'pear']
嘗試打印一下列表,代碼如下:
fruits = ['grape', 'apple', 'banana', 'orange', 'pear'] print(fruits)
輸出結(jié)果如下圖:

可以看到,如果簡單的打印列表,其輸出結(jié)果就包含方括號(hào)、引號(hào)、元素名稱和逗號(hào),這不是期待的輸出,下面來介紹怎么訪問列表元素。
二、訪問列表元素
列表是一個(gè)有序的集合,因此要訪問列表中的任何一個(gè)元素,只要給出列表的名稱,再給出該元素的索引并將其放在方括號(hào)內(nèi),即可實(shí)現(xiàn)訪問。
在Python中,索引是從0開始的,元素的索引均是其位置減1。
如果不知道列表的長度,但要訪問最后一個(gè)元素,只要將索引指定為-1,Python即可返回最后一個(gè)列表元素,同理,索引為-2可返回倒數(shù)第二個(gè)列表元素。
下面是訪問列表元素的例子:
fruits = ['grape', 'apple', 'banana', 'orange', 'pear']
print("The first element of fruits is "+fruits[0]+".")
print("The second element of fruits is "+fruits[1]+".")
print("The last element of fruits is "+fruits[-1]+".") #訪問最后一個(gè)列表元素輸出結(jié)果如下圖所示:

三、修改、添加和刪除列表元素
1.修改列表元素
修改列表元素只要指定列表名和要修改的元素的索引,再賦值給該元素新值即可。
下面是修改列表元素的例子:
fruits = ['grape', 'apple', 'banana', 'orange', 'pear']
print('Before modify:\nfruits = '+str(fruits))
fruits[1] = 'mango' #修改第二個(gè)元素
print('After modify:\nfruits = '+str(fruits))輸出結(jié)果如下圖所示:

2.在列表中添加元素
在列表中添加元素有以下兩個(gè)方法:
- append(value) —— 在列表末尾添加元素。
- insert(index,value) —— 在列表指定的位置添加元素。
方法append()通過追加的方式在列表的末尾插入元素,這很方便,但是有時(shí)候需要在列表指定的位置插入某個(gè)元素,這時(shí)就需要用到方法insert(),將元素插入到指定的位置后,原列表中該位置之后的元素索引均加1,該位置之前的元素索引不變。
在列表中添加元素的例子:
fruits = ['grape', 'apple', 'banana', 'orange', 'pear']
print('Original:\nfruits = '+str(fruits))
fruits.append('mango')
print('After append:\nfruits = '+str(fruits))
fruits.insert(2, 'watermelon')
print('After insert:\nfruits = '+str(fruits))輸出結(jié)果如下圖所示:

3.從列表中刪除元素
從列表中刪除元素有以下三個(gè)方法:
- del listname[index] —— 從列表中刪除一個(gè)元素,且不再使用。
- pop(index) —— 從列表中刪除一個(gè)元素,后續(xù)還會(huì)再使用。
- remove(‘element name’) —— 不知道要從列表中刪除的值所處的位置,但知道要?jiǎng)h除元素的值。
如果要從列表中刪除一個(gè)元素,且不再以任何方式使用它,就使用del語句;如果要在刪除元素后還能繼續(xù)使用它,就使用方法pop();如果只知道要?jiǎng)h除的元素的值,就使用方法remove(),方法remove()只刪除第一個(gè)指定的值,如果要?jiǎng)h除的值可能在列表中出現(xiàn)多次,就需要使用循環(huán)來判斷是否刪除了所有這樣的值。
刪除掉某一元素后,該元素之后的元素索引均減1,該元素之前的元素索引不變。
下面是從列表中刪除元素的例子:
fruits = ['grape', 'apple', 'watermelon', 'banana', 'orange', 'apple', 'pear', 'mango']
print('Original:\nfruits = '+str(fruits))
del fruits[2] ?#刪除列表的第三個(gè)元素
print('After del:\nfruits = '+str(fruits))
fruit_popped = fruits.pop(-1) ?#刪除列表的最后一個(gè)元素
print('After pop:\nfruits = '+str(fruits))
print('The popped fruit is ' + fruit_popped + '.')
fruit_remove = 'apple'
fruits.remove(fruit_remove) #刪除列表中名為fruit_remove的第一個(gè)元素
print('After remove:\nfruits = '+str(fruits))
print('The removed fruit is ' + fruit_remove + '.')輸出結(jié)果如下圖所示:

四、對(duì)列表元素排序
對(duì)列表元素排序有以下三個(gè)方法:
- sort() —— 對(duì)列表進(jìn)行永久性排序。
- sorted() —— 對(duì)列表進(jìn)行臨時(shí)排序。
- reverse() —— 反轉(zhuǎn)列表元素的排列順序。
下面是使用sort()對(duì)列表元素排序的例子:
fruits = ['grape', 'apple', 'watermelon', 'banana', 'orange', 'pear', 'mango']
print('原列表:\nfruits = '+str(fruits))
fruits.sort() #按首字母順序
print('順序排列:\nfruits = '+str(fruits))
fruits.sort(reverse=True) #按首字母倒序
print('倒序排列:\nfruits = '+str(fruits))輸出結(jié)果如下圖所示:

下面是使用sorted()對(duì)列表元素排序的例子:
num = ['1', '8', '6', '4', '9'] #這里的列表元素不加引號(hào)也可
print('原列表:\nnum = '+str(num))
print('臨時(shí)排序:\nnum = '+str(sorted(num))) #臨時(shí)排序
print('再一次輸出原列表:\nnum = '+str(num))輸出結(jié)果如下圖所示:

下面是使用reverse()對(duì)列表元素排序的例子:
fruits = ['grape', 'apple', 'watermelon', 'banana', 'orange', 'pear', 'mango']
print('原列表:\nfruits = '+str(fruits))
fruits.reverse() #逆向排列列表元素
print('逆向排列:\nfruits = '+str(fruits))輸出結(jié)果如下圖所示:

五、確定列表長度
確定列表長度的方法如下:
- len() —— 求列表長度。
下面是確定列表長度的例子:
fruits = ['grape', 'apple', 'watermelon', 'banana', 'orange', 'pear', 'mango']
print('列表 fruits 的長度為:'+str(len(fruits)))
num = ['1', '8', '6', '4', '9']
print('列表 num 的長度為:'+str(len(num)))輸出結(jié)果如下圖所示:

六、遍歷列表
在Python中,如果需要對(duì)列表中的每個(gè)元素都執(zhí)行相同的操作,可使用for循環(huán)。下面是遍歷整個(gè)列表的例子,注意for循環(huán)中各代碼行的縮進(jìn),縮進(jìn)不同,執(zhí)行的次數(shù)也不同。
fruits = ['grapes', 'apples', 'bananas', 'oranges', 'pears']
for fruit in fruits:
? ? print(fruit)
? ? print('I like '+str(fruit)+'.') #縮進(jìn),列表的長度是多少,就執(zhí)行多少次
print('There are '+str(len(fruits))+' fruits here.') #不縮進(jìn),for循環(huán)結(jié)束后執(zhí)行,執(zhí)行1次輸出結(jié)果如下圖所示:

編寫for循環(huán)時(shí),用于存儲(chǔ)列表中每個(gè)值的臨時(shí)變量可以指定任何名稱,一般使用單數(shù)和復(fù)數(shù)式的名稱可幫助我們更好地判斷代碼段處理的是單個(gè)列表元素還是整個(gè)列表。
七、創(chuàng)建數(shù)值列表
列表非常適合用于存儲(chǔ)數(shù)字集合,而Python提供了很多工具可幫助我們高效地處理數(shù)字列表,下面來看怎么創(chuàng)建數(shù)值列表。
1.函數(shù)range()的使用
range(start, end, step length) —— 在start到end這個(gè)左閉右開區(qū)間上生成步長為step length的一系列數(shù)字,含start值但不含end值,如果沒有參數(shù)step length,默認(rèn)步長為1。
下面是函數(shù)range()使用的例子:
print('1-5之間步長為1的輸出:')
for value in range(1,5):
? ? print(value)
print('1-5之間步長為2的輸出:')
for value in range(1,5,2):
? ? print(value)輸出結(jié)果如下圖所示:

2.創(chuàng)建數(shù)字列表
將range()作為list()的參數(shù),輸出將為一個(gè)數(shù)字列表。當(dāng)然,也可以創(chuàng)建一個(gè)空的列表,然后通過for循環(huán)將函數(shù)range()生成的數(shù)依次追加到列表中,這樣也可以生成一個(gè)數(shù)字列表。
下面是使用函數(shù)range()創(chuàng)建數(shù)字列表的例子:
nums = list(range(1,5)) #直接使用函數(shù)list()創(chuàng)建列表
print('方法一:nums = '+str(nums))
nums=[] ?#通過for循環(huán)創(chuàng)建列表
for value in range(1,5):
? ? nums.append(value)
print('方法二:nums = '+str(nums))輸出結(jié)果如下圖所示:

可以看到,這兩種方法的輸出結(jié)果是一樣的。
3.列表解析
列表解析是將for循環(huán)和創(chuàng)建新元素的代碼合并成一行,并自動(dòng)附加新元素。
下面通過一個(gè)例子了解列表解析:
squares = []
for value in range(1,11):
? ? squares.append(value**2)
print('一般方法:squares = ' + str(squares))
squares = [value**2 for value in range(1,11)] #列表解析
print('列表解析法:squares = ' + str(squares))
輸出結(jié)果如下圖所示:

由輸出結(jié)果可知,雖然兩者的輸出結(jié)果相同,但是列表解析能夠有效的縮減代碼的行數(shù)。
4.處理數(shù)字列表的函數(shù)應(yīng)用
下面是幾個(gè)專門用于處理數(shù)字列表的Python函數(shù):
- min() —— 求列表最小值。
- max() —— 求列表最大值。
- sum() —— 求列表元素之和。
下面是這幾個(gè)函數(shù)應(yīng)用的例子:
nums = [value for value in range(1,11)]
print('nums = ' + str(nums))
print('列表nums中的最小值為:' + str(min(nums)))
print('列表nums中的最大值為:' + str(max(nums)))
print('列表nums的所有元素之和為:' + str(sum(nums)))輸出結(jié)果如下圖所示:

八、切片
創(chuàng)建切片需要指定要使用的第一個(gè)元素和最后一個(gè)元素的索引,與函數(shù)range()類似,Python在到達(dá)指定的第二個(gè)索引前面的元素后停止??梢造`活運(yùn)用索引使其從開頭訪問或訪問至列表末尾,甚至從頭至尾復(fù)制列表。
下面是切片應(yīng)用的例子:
fruits = ['grape', 'apple', 'banana', 'orange', 'pear']
print('fruits = '+str(fruits))
print('列表fruits的前三個(gè)元素:'+str(fruits[:3]))
print('列表fruits的后三個(gè)元素:'+str(fruits[-3:]))
print('列表fruits的全部元素:'+str(fruits[:])) #復(fù)制列表
print('遍歷列表fruits的前三個(gè)元素:')
for fruit in fruits[0:3]: ?#遍歷列表fruits的前三個(gè)元素
? ? print(fruit)輸出結(jié)果如下圖所示:

下面這個(gè)例子用來區(qū)分切片和列表關(guān)聯(lián)的區(qū)別:
fruits = ['grape', 'apple', 'banana', 'orange', 'pear']
print('Original fruits = '+str(fruits))
fruits_1 = fruits[:] ?#復(fù)制列表
fruits_2 = fruits #列表fruits和fruits_2相關(guān)聯(lián)
fruits.append('mango')
fruits_2.append('watermelon')
print('After append fruits = '+str(fruits))
print('fruits_1 = '+str(fruits_1))
print('fruits_2 = '+str(fruits_2))
輸出結(jié)果如下圖所示:

由輸出結(jié)果可以看到,復(fù)制列表和關(guān)聯(lián)列表的區(qū)別還蠻大的,復(fù)制列表之后,原列表再更改也和已經(jīng)復(fù)制到的列表無關(guān),但是兩個(gè)列表關(guān)聯(lián)后,無論哪個(gè)列表變動(dòng)都會(huì)同步到另一個(gè)列表,因?yàn)閮蓚€(gè)變量都指向了同一個(gè)列表。
九、元組
列表非常適合用于存儲(chǔ)在程序運(yùn)行期間可能變化的數(shù)據(jù)集,然而,有時(shí)候我們需要?jiǎng)?chuàng)建一系列不可修改的元素,元組可以滿足這種需求。
Python將不能修改的值稱為不可變的,而不可變的列表被稱為元組。元組和列表類似又有區(qū)別,它使用的是圓括號(hào)而不是方括號(hào)來標(biāo)識(shí),定義元組后,就可以使用索引像訪問列表元素一樣來訪問元組。
在Python中,不能給元組的元素賦值,修改元組的操作是被禁止的,但可以給存儲(chǔ)元組的變量賦值。
下面是元組應(yīng)用的例子:
group = (100, 50)
print('group = '+str(group))
print('打印元組內(nèi)元素:')
print(group[0])
print(group[1]) #打印元組中的各個(gè)元素
print('遍歷元組:')
for element in group: #遍歷元組
? ? print(element)
print('修改元組變量后輸出:')
group = (200, 100) #修改元組變量,給元組賦新值
for element in group:
? ? print(element)
輸出結(jié)果如下圖所示:

總結(jié):
以上就是Python中列表及其操作的所有內(nèi)容了,文中提到的一些方法都是對(duì)列表的簡單操作,應(yīng)當(dāng)多加練習(xí)牢記,并在之后的編程中熟練使用。
到此這篇關(guān)于Python中的列表及其操作方法的文章就介紹到這了,更多相關(guān)Python列表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
YOLOv5車牌識(shí)別實(shí)戰(zhàn)教程(四)模型優(yōu)化與部署
這篇文章主要介紹了YOLOv5車牌識(shí)別實(shí)戰(zhàn)教程(四)模型優(yōu)化與部署,在這個(gè)教程中,我們將一步步教你如何使用YOLOv5進(jìn)行車牌識(shí)別,幫助你快速掌握YOLOv5車牌識(shí)別技能,需要的朋友可以參考下2023-04-04
Python實(shí)現(xiàn)將內(nèi)容寫入文件的五種方法總結(jié)
本篇帶你詳細(xì)看一下python將內(nèi)容寫入文件的方法以及細(xì)節(jié),主要包括write()方法、writelines()?方法、print()?函數(shù)、使用?csv?模塊、使用?json?模塊,需要的可以參考一下2023-04-04
Python創(chuàng)建普通菜單示例【基于win32ui模塊】
這篇文章主要介紹了Python創(chuàng)建普通菜單,結(jié)合實(shí)例形式分析了Python基于win32ui模塊創(chuàng)建普通菜單及添加菜單項(xiàng)的相關(guān)操作技巧,并附帶說明了win32ui模塊的安裝命令,需要的朋友可以參考下2018-05-05
從零學(xué)python系列之淺談pickle模塊封裝和拆封數(shù)據(jù)對(duì)象的方法
這個(gè)系列也發(fā)了幾篇文章了,都是個(gè)人的一些學(xué)習(xí)心得的記錄,今天在學(xué)習(xí)文件數(shù)據(jù)處理的時(shí)候了解到有pickle模塊,查找官方文檔學(xué)習(xí)了一些需要用到的pickle內(nèi)容。2014-05-05
Python實(shí)現(xiàn)的遠(yuǎn)程登錄windows系統(tǒng)功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)的遠(yuǎn)程登錄windows系統(tǒng)功能,結(jié)合實(shí)例形式分析了Python基于wmi模塊的遠(yuǎn)程連接與進(jìn)程操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-06-06

