Python列表(“陣列”)操作
1、任務簡介
首先,我們需要明確的一點就是Python是沒有陣列這一概念的,也正是基於這一特點我才打算撰寫這篇部落格,但是Python中有一種比陣列還要厲害的東西——列表,它的功能比陣列更加強大,所以把它稱為“打了激素的陣列”。
關於Python列表的講解可以檢視菜鳥教程,但是我認為本部落格的講解比教程更易於理解,可以讓初學者一看就懂。
注:本部落格所有程式碼均在IDLE下完成。
2、列表操作簡介
(1)建立列表
初學Python還是建議大家使用IDLE進行程式的編寫,所以本部落格中所有講解均是在IDLE下完成的,建立列表的方法及顯示結果如下:
>> > number = [1,2,3,4,'羅思洋']
>>> number
[1, 2, 3, 4, '羅思洋']
在列表中可以包含整形、字串、浮點型資料,還可以包含另一個列表。
(2)向列表中新增元素
向列表新增元素一共有append()、extend()和insert()三種方法,下面我將三種方法一一道來:
1)append()方法預設將元素新增到列表末尾,並且一次只能新增一個元素,操作如下:
>>> number = [0,1,2,3,4]
>>> number.append(5)
>>> number
[ 0, 1, 2, 3, 4, 5]
2)extend()方法可以新增多個元素,但是必須以列表的形式新增,操作如下:
>>> number = [0,1,2,3,4]
>>> number.extend([5,6])
>>> number
[0, 1, 2, 3, 4, 5, 6]
3)大家有沒有發現前兩種方法均將元素新增到列表末尾,如果想插隊的話就需要使用insert()方法了,操作如下:
>>> number = [0,1,2,3,4]
>>> number.insert(2,1)
>> > number
[0, 1, 1, 2, 3, 4]
insert(2,1)中2指位置,1是需要新增的元素(列表第一個元素所在位置為0)。
(3)從列表中刪除元素
學習了新增元素的方法,自然需要學習刪除元素的方法,從列表中刪除元素一共有remove()、del和pop()三種方法,下面我一一道來(之前的例子我使用數字進行講解,本部分我使用字串進行講解):
1)使用remove()方法時,我們需要知道列表中已經存在的元素,這樣才可以實現元素的刪除,操作如下:
>>> number = ['羅','思','洋']
>>> number.remove('羅')
>>> number
['思', '洋']
2)當我們需要刪除指定位置的元素時,就需要使用del方法,操作如下:
>>> number = ["羅",'思','洋']
>>> del number[0]
>>> number
['思', '洋']
del後直接跟列表名可以刪除整個列表。
3)pop()方法可以彈出元素,若無指定索引值作為引數時預設彈出最後一個元素,有索引值的操作如下:
>>> number = ["羅",'思','洋']
>>> number.pop(0)
'羅'
>>> number
['思', '洋']
使用三種方法都可以實現元素的刪除,孰優孰劣大家自行斟酌。
(4)從列表中獲取元素
1)從列表中獲取元素可以一次獲取一個或多個,獲取一個的操作如下:
>>> number = ["羅",'思','洋']
>>> number[0]
'羅'
2)當我們需要獲取多個時就需要使用列表分片的方法,操作如下:
>>> number = ["羅",'思','洋']
>>> number[0:2]
['羅', '思']
>>> number[:2]
['羅', '思']
>>> number[1:]
['思', '洋']
>>> number[:]
['羅', '思', '洋']
number[0:2]中0為開始位置,2為結束位置,並且結束位置上的元素是不包含的,開始位置未新增時預設為0,結束位置未新增時預設為最後一個元素所在位置。
3)我們還需要學習訪問列表中列表的方法,操作如下:
>>> number = [0,1,[2,3],4]
>>> number[2][1]
3
number[2][1]中2指第一層列表的元素,1指第二層列表中的元素。
(5)列表反轉
列表反轉一共有兩種方法,第一種方法需要使用到列表分片,第二種是reverse()方法,具體如下:
1)分片操作實際上是可以設定第三個引數的,第三個引數代表的是步長,當步長為-1就可以實現列表反轉,操作如下:
>>> number = [0,1,2,3,4]
>>> number[::-1]
[4, 3, 2, 1, 0]
2)reverse()方法操作如下:
>>> number = [0,1,2,3,4]
>>> number.reverse()
>>> number
[4, 3, 2, 1, 0]
在有例子展示的情況下,一切變得簡單了。
(6)列表的拼接與重複
1)首先講一下列表的拼接,其實是指需要使用 + 就可以完成了,操作如下:
>>> number1 = ["羅",'思','洋']
>>> number2 = [0,1,2,3,4]
>>> number3 = number1 + number2
>>> number3
['羅', '思', '洋', 0, 1, 2, 3, 4]
2)重複操作也同樣簡單,使用 * 即可完成,操作如下:
>>> number = [123]
>>> number*3
[123, 123, 123]
>>> number *= 3
>>> number
[123, 123, 123]
(7)元素是否存在於列表中的判斷
1)判斷就需要使用到in和not in,in的操作如下:
>>> number = ['羅','思','洋']
>>> '羅' in number
True
>>> '1' in number
False
not in的操作如下:
>>> number = [0,1,2,3,4]
>>> 1 not in number
False
>>> 6 not in number
True
2)但是in和not in只能判斷一個層次的成員關係,對於二層列表種元素的判斷操作如下:
>>> number = [0,1,[2,3],4]
>>> 2 in number[2]
True
>>> 3 not in number[2]
False
(8)其餘操作
1)count()方法可以計算引數在列表中的出現次數,操作如下:
>>> number = [0,0,1,0,2,3,4]
>>> number.count(0)
3
2)index()方法可以返回引數在列表中的位置,操作如下:
>>> number = [0,1,2,3,4]
>>> number.index(1)
1
3)sort()方法可以將列表中的元素進行排序,操作如下:
>>> number = [11,23,45,67,32,66,91]
>>> number.sort()
>>> number
[11, 23, 32, 45, 66, 67, 91]
此時實現的是升序排序,如果想實現降序排序的話操作如下:
>>> number = [11,23,45,67,32,66,91]
>>> number.sort(reverse=True)
>>> number
[91, 67, 66, 45, 32, 23, 11]
3、總結
以上所列出的方法均是Python列表操作中較為常用的方法,寫這篇部落格花費了我大量時間,每一個功能我都儘量列出多種實現方法,每一種方法我都在IDLE中進行驗證,力求做到全面而準確無誤。Python除列表外還有一種叫做元組的東西,大家可以通過菜鳥教程進行學習,若我有時間的話會在後面的部落格中更新元組的操作。