Python筆記 列表用法的介紹

Python的列表、字典與元組這些序列數據結構功能強大用起來相當方便,但學習起來像本人這樣的菜鳥容易弄混,轉眼之間旬月過去便忘記用法了,因而在此整理列表、字典、元組的用法備忘。本篇主要關於列表。

1.列表

首先我們來談談列表,python中的列表其實像是或者說就是c++中的容器,可以將各種不同的對象放在其中按照順序儲存與索引。
1.1創建列表
首先我們希望創建一個列表,我們可以通過用逗號分隔的不同的數據項再方括號括起來再將其地址賦給引用如下面的list1與list2:

list1 = [1, 2, 3, 4, 5 ]
list2 = ["a", "b", "c", "d"]

我們也可以創建空列表

list1 = []

我們可以看出在創建列表時初始化的方式是多樣的,我們同樣可以利用以下的語句初始化。

list1 = [i for i in range(10)]

這樣與以下語句是等價的。

list1 = [0,1,2,3,4,5,6,7,8,9]

在希望將列表中的值置成一樣的值時比如0或者字符串都可以用以下語句實現:

list1 = [0] * 5

這樣的語句和直接賦5個0是一樣的。不過我在用列表嵌套列表即二維列表時,在使用這個語法置0後,時我遇到過錯誤,所有的列表中的引用均是list[0]的引用,修改其中一個後所有的都改了,即出現了出乎意料的結果。

a=[[0,0]]*5
a[1][0]=1
print(a)

輸出爲

[[1, 0], [1, 0], [1, 0], [1, 0], [1, 0]]

而不是

[[0, 0], [1, 0], [0, 0], [0, 0], [0, 0]]

其實是因爲[0,0]是列表的一個引用,*5是將引用複製5份。
爲了避免這個問題我們需要這樣創建二維列表:

a = [[0] * 2 for i in range(5)]

這樣就不會出現上述問題。

1.2訪問列表
若我們成功創建了列表自然希望能夠訪問列表,其實我們可以像對待c語言的數組一樣對待它。注意python中列表的索引也是從0開始的。
我們可以通過索引直接訪問列表中的對象:

print ("list1[0]: ", list1[0])

若我們存的是整形數和C語言的以下語句幾乎是一樣的功能:

printf ("list1[0]: %d\n", a[0]);

輸出的就是列表的第一個元素。
但是Python有些較爲特色的用法比如切片操作:

print ("list2[1:5]: ", list2[1:5])

輸出結果爲

list2[1:5]:  [2, 3, 4, 5]

即輸出列表索引值0~4的四個元素。
這裏順便提一下一些有關訪問、查找、統計的內置函數
有時候我們希望找到某個元素的索引位置,可以使用內置函數實現

a=[0,1,2,3,4,5]
b=a.index(5)
print(b)#輸出即爲索引值5。

我們希望瞭解某個元素的出現次數時我們可以這樣實現:

a=[0,1,2,3,4,5,5]
b=a.count(5)
print(b)#輸出爲2

在查找最大值與最小值時即可簡單的用以下兩個函數實現:

a=[0,1,2,3,4,5]
print(max(a),min(a))#輸出爲5 0

1.3編輯修改列表
我們完全可以像C語言對待數組一樣直接對列表中對應索引的元素進行操作:

list1 = [0,1,2,3,4,5]
list1[0] = 1
print(list1)

輸出即爲:

[1, 1, 2, 3, 4, 5]

完全在我們的意料之中。
與C語言所不同的是,我們可以通過以下的一些方法實現對列表的增刪操作。
首先我們可以通過del關鍵字實現對指定項的刪除:

list1 = [0,1,2,3,4,5]
del list1[0:2]
print(list1)

我們可以用一些內置函數同樣實現指定項的刪除:

list1 = [0,1,2,3,4,5]
list1.remove(4)#刪除第一個與其參數值相同的對象
print(list1)
a=list1.pop()#刪除並返回指定索引的對象,默認爲末尾對象
print(a)#返回的被刪除的值
print(list1)

輸出爲:

[0, 1, 2, 3, 5]
5
[0, 1, 2, 3]

同樣我們可以用內置函數實現列表元素的增加,其中我們必須掌握的是append()和insert()。
使用append我們可以直接在列表後增加元素。

list1 = [1, 'xyz', 'hhh', 'abc'];
list1.append( 2020 );
print("Updated List : ", list1)

輸出結果爲

Updated List :  [1, 'xyz', 'hhh', 'abc', 2020]

使用insert()我們可以選擇對象的插入位置,其參數分別爲插入位置索引與插入對象,其用法如下:

list1 = [1, 'xyz', 'charlie', 'abc']
list1.insert( 3, 2020)
print("Final List : ", list1)

輸出爲:

Final List :  [1, 'xyz', 'charlie', 2020, 'abc']

列表還有sort()可以進行排序,reverse()可以進行將列表逆序輸出等方法,這裏不在贅述。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章