首頁 > 軟體

Python中的列表及其操作方法

2022-03-28 13:00:53

前言:

本文的主要內容是介紹Python中的列表及其方法的使用,涉及到的方法包括對列表元素進行修改、新增、刪除、排序以及求列表長度等,此外還介紹了列表的遍歷、數值列表、切片和元組的一些操作,文中附有程式碼以及相應的執行結果輔助理解。

一、列表簡介

列表由一系列按特定順序排列的元素組成,它能夠在一個地方儲存成組的資訊,其中元素的個數可以只有幾個,也可以有數百萬個。
在Python中,用方括號來表示列表,並用逗號來分隔其中的元素,每個元素用單引號(也可以是雙引號)括起來。

下面的程式碼就是一個簡單的列表範例:

fruits = ['grape', 'apple', 'banana', 'orange', 'pear']

嘗試列印一下列表,程式碼如下:

fruits = ['grape', 'apple', 'banana', 'orange', 'pear']
print(fruits)

輸出結果如下圖:

可以看到,如果簡單的列印列表,其輸出結果就包含方括號、引號、元素名稱和逗號,這不是期待的輸出,下面來介紹怎麼存取列表元素。

二、存取列表元素

列表是一個有序的集合,因此要存取列表中的任何一個元素,只要給出列表的名稱,再給出該元素的索引並將其放在方括號內,即可實現存取。
在Python中,索引是從0開始的,元素的索引均是其位置減1。
如果不知道列表的長度,但要存取最後一個元素,只要將索引指定為-1,Python即可返回最後一個列表元素,同理,索引為-2可返回倒數第二個列表元素。

下面是存取列表元素的例子:

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]+".") #存取最後一個列表元素

輸出結果如下圖所示:

三、修改、新增和刪除列表元素

1.修改列表元素

修改列表元素只要指定列表名和要修改的元素的索引,再賦值給該元素新值即可。

下面是修改列表元素的例子:

fruits = ['grape', 'apple', 'banana', 'orange', 'pear']
print('Before modify:nfruits = '+str(fruits))

fruits[1] = 'mango' #修改第二個元素
print('After modify:nfruits = '+str(fruits))

輸出結果如下圖所示:

2.在列表中新增元素

在列表中新增元素有以下兩個方法:

  • append(value) —— 在列表末尾新增元素。
  • insert(index,value) —— 在列表指定的位置新增元素。

方法append()通過追加的方式在列表的末尾插入元素,這很方便,但是有時候需要在列表指定的位置插入某個元素,這時就需要用到方法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))

輸出結果如下圖所示:

3.從列表中刪除元素

從列表中刪除元素有以下三個方法:

  • del listname[index] —— 從列表中刪除一個元素,且不再使用。
  • pop(index) —— 從列表中刪除一個元素,後續還會再使用。
  • remove(‘element name’) —— 不知道要從列表中刪除的值所處的位置,但知道要刪除元素的值。

如果要從列表中刪除一個元素,且不再以任何方式使用它,就使用del語句;如果要在刪除元素後還能繼續使用它,就使用方法pop();如果只知道要刪除的元素的值,就使用方法remove(),方法remove()只刪除第一個指定的值,如果要刪除的值可能在列表中出現多次,就需要使用迴圈來判斷是否刪除了所有這樣的值。
刪除掉某一元素後,該元素之後的元素索引均減1,該元素之前的元素索引不變。

下面是從列表中刪除元素的例子:

fruits = ['grape', 'apple', 'watermelon', 'banana', 'orange', 'apple', 'pear', 'mango']
print('Original:nfruits = '+str(fruits))

del fruits[2]  #刪除列表的第三個元素
print('After del:nfruits = '+str(fruits))

fruit_popped = fruits.pop(-1)  #刪除列表的最後一個元素
print('After pop:nfruits = '+str(fruits))
print('The popped fruit is ' + fruit_popped + '.')

fruit_remove = 'apple'
fruits.remove(fruit_remove) #刪除列表中名為fruit_remove的第一個元素
print('After remove:nfruits = '+str(fruits))
print('The removed fruit is ' + fruit_remove + '.')

輸出結果如下圖所示:

四、對列表元素排序

對列表元素排序有以下三個方法:

  • sort() —— 對列表進行永久性排序。
  • sorted() —— 對列表進行臨時排序。
  • reverse() —— 反轉列表元素的排列順序。

下面是使用sort()對列表元素排序的例子:

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))

輸出結果如下圖所示:

下面是使用sorted()對列表元素排序的例子:

num = ['1', '8', '6', '4', '9'] #這裡的列表元素不加引號也可
print('原列表:nnum = '+str(num))

print('臨時排序:nnum = '+str(sorted(num))) #臨時排序
print('再一次輸出原列表:nnum = '+str(num))

輸出結果如下圖所示:

下面是使用reverse()對列表元素排序的例子:

fruits = ['grape', 'apple', 'watermelon', 'banana', 'orange', 'pear', 'mango']
print('原列表:nfruits = '+str(fruits))

fruits.reverse() #逆向排列列表元素
print('逆向排列:nfruits = '+str(fruits))

輸出結果如下圖所示:

五、確定列表長度

確定列表長度的方法如下:

  • 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)))

輸出結果如下圖所示:

六、遍歷列表

在Python中,如果需要對列表中的每個元素都執行相同的操作,可使用for迴圈。下面是遍歷整個列表的例子,注意for迴圈中各程式碼行的縮排,縮排不同,執行的次數也不同。

fruits = ['grapes', 'apples', 'bananas', 'oranges', 'pears']
for fruit in fruits:
    print(fruit)
    print('I like '+str(fruit)+'.') #縮排,列表的長度是多少,就執行多少次
print('There are '+str(len(fruits))+' fruits here.') #不縮排,for迴圈結束後執行,執行1次

輸出結果如下圖所示:

編寫for迴圈時,用於儲存列表中每個值的臨時變數可以指定任何名稱,一般使用單數和複數式的名稱可幫助我們更好地判斷程式碼段處理的是單個列表元素還是整個列表。

七、建立數值列表

列表非常適合用於儲存數位集合,而Python提供了很多工具可幫助我們高效地處理數位列表,下面來看怎麼建立數值列表。

1.函數range()的使用

range(start, end, step length) —— 在start到end這個左閉右開區間上生成步長為step length的一系列數位,含start值但不含end值,如果沒有引數step length,預設步長為1。

下面是函數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)

輸出結果如下圖所示:

2.建立數位列表

range()作為list()的引數,輸出將為一個數位列表。當然,也可以建立一個空的列表,然後通過for迴圈將函數range()生成的數依次追加到列表中,這樣也可以生成一個數位列表。

下面是使用函數range()建立數位列表的例子:

nums = list(range(1,5)) #直接使用函數list()建立列表
print('方法一:nums = '+str(nums))

nums=[]  #通過for迴圈建立列表
for value in range(1,5):
    nums.append(value)
print('方法二:nums = '+str(nums))

輸出結果如下圖所示:

可以看到,這兩種方法的輸出結果是一樣的。

3.列表解析

列表解析是將for迴圈和建立新元素的程式碼合併成一行,並自動附加新元素。

下面通過一個例子瞭解列表解析:

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))

輸出結果如下圖所示:

由輸出結果可知,雖然兩者的輸出結果相同,但是列表解析能夠有效的縮減程式碼的行數。

4.處理數位列表的函數應用

下面是幾個專門用於處理數位列表的Python函數:

  • min() —— 求列表最小值。
  • max() —— 求列表最大值。
  • sum() —— 求列表元素之和。

下面是這幾個函數應用的例子:

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)))

輸出結果如下圖所示:

八、切片

建立切片需要指定要使用的第一個元素和最後一個元素的索引,與函數range()類似,Python在到達指定的第二個索引前面的元素後停止。可以靈活運用索引使其從開頭存取或存取至列表末尾,甚至從頭至尾複製列表。

下面是切片應用的例子:

fruits = ['grape', 'apple', 'banana', 'orange', 'pear']
print('fruits = '+str(fruits))

print('列表fruits的前三個元素:'+str(fruits[:3]))
print('列表fruits的後三個元素:'+str(fruits[-3:]))
print('列表fruits的全部元素:'+str(fruits[:])) #複製列表

print('遍歷列表fruits的前三個元素:')
for fruit in fruits[0:3]:  #遍歷列表fruits的前三個元素
    print(fruit)

輸出結果如下圖所示:

下面這個例子用來區分切片和列表關聯的區別:

fruits = ['grape', 'apple', 'banana', 'orange', 'pear']
print('Original fruits = '+str(fruits))
fruits_1 = fruits[:]  #複製列表

fruits_2 = fruits #列表fruits和fruits_2相關聯
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))

輸出結果如下圖所示:

由輸出結果可以看到,複製列表和關聯列表的區別還蠻大的,複製列表之後,原列表再更改也和已經複製到的列表無關,但是兩個列表關聯後,無論哪個列表變動都會同步到另一個列表,因為兩個變數都指向了同一個列表。

九、元組

列表非常適合用於儲存在程式執行期間可能變化的資料集,然而,有時候我們需要建立一系列不可修改的元素,元組可以滿足這種需求。
Python將不能修改的值稱為不可變的,而不可變的列表被稱為元組。元組和列表類似又有區別,它使用的是圓括號而不是方括號來標識,定義元組後,就可以使用索引像存取列表元素一樣來存取元組。
在Python中,不能給元組的元素賦值,修改元組的操作是被禁止的,但可以給儲存元組的變數賦值。

下面是元組應用的例子:

group = (100, 50)
print('group = '+str(group))
print('列印元組內元素:')
print(group[0])
print(group[1]) #列印元組中的各個元素

print('遍歷元組:')
for element in group: #遍歷元組
    print(element)

print('修改元組變數後輸出:')
group = (200, 100) #修改元組變數,給元組賦新值
for element in group:
    print(element)

輸出結果如下圖所示:

總結:

以上就是Python中列表及其操作的所有內容了,文中提到的一些方法都是對列表的簡單操作,應當多加練習牢記,並在之後的程式設計中熟練使用。

到此這篇關於Python中的列表及其操作方法的文章就介紹到這了,更多相關Python列表內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com