文章程式碼顯示

2017年8月17日 星期四

一起學 Python - 10 :陣列、列表的使用(1)

這個單元我們要來講講 "陣列(array)"  以及陣列的延伸 "列表(list)" 。首先我們讓各位先看看陣列這東西長什麼樣子

# 建立陣列
X = [80,79,69,55,40]
print(X)

# 擷取陣列中的某一個元素
X0 = X[0]
X1 = X[1]
X2 = X[2]

print(X0)
print(X1)
print(X2)

將一個數據組集合表示,就是陣列。難以理解嗎? 我們可以把 X 想像成是班上同學的國文成績,而中括弧裡面一個一個數字(中括弧代表告訴python我們要建立的是一個陣列)就是各個同學的成績。

需要特別注意的是,身為一個程式設計者,要改變我們從小到大的一個習慣,那就是計數。在電腦的世界裡,計數這件事一律從 " 0 " 開始算,其背後的原因是電腦只看的懂 0 跟 1 的組合,什麼十進制、十六進制都是人類發展出來方便使用罷了。

回到我們的陣列,由第一行可以看到 陣列X 具有 5 個 元素(elements) ,也就是裡面有五個數字的意思,但我們在計數的時候需要從0開始。也就是說對於電腦而言,80這個數字是為於 X陣列中 0 的位置(index),79為陣列中 1 的位置 ... 以此類推。有了這個概念後就可以了解程式碼中六七八行代表的意思是什麼。

在這裡我想更仔細的解釋給大家聽。在第一行時我們我們使用了 英文字母 X 加上 一個等號 加上中括弧裡面放置數字,如前所述這是告訴python我們要建立(創立)一個名為 X 的陣列。

然而第六行中我們又再一次使用了中括弧,特別注意的是,在第六行的中括弧代表的是 "陣列中取值" , 不是建立陣列。

大家第一次接觸難免雜亂。在複習一次

第二行中 一個變數(X) 加上 等號 加上中括弧,代表的是建立一個陣列。
第六行中 一個變數(X0) 加上 等號 再加上一個變數(X)以及中括弧,代表的是對陣列取值。

不知道大家有沒有注意到,在前幾章的教學中都沒有出現陣列,這不代表陣列不重要,而是被我故意迴避掉而已。舉凡是這種資料的集合,事實上我們不會將它存在一個一個變數中,這樣子做太麻煩了!倘若一個班級有 40 位同學 , 難道你要用40個變數來存 40個同學的國文成績嗎? 顯然是不可能的

在確定自己對上面的程式碼熟悉後,我們將進入到陣列的加工處理部分。由於陣列實在是太好用了,所以在 python 內有許多函式可以對陣列進行操作。

#===陣列的增加與刪除===

# 陣列的增加(只能增加在最後頭)
X.append(33)
print(X)

# 陣列的增加(增加多個) 重點在於需使用陣列才能加入
X.extend( [22,11] )
print(X)

# 陣列指定位置增加(第一個參數為指定位置(index),第二個參數為值)
X.insert(0,99)
print(X)

# 陣列指定位置刪除
del X[0]
print(X)

# 陣列全部刪除
# del X
# print(X)

# 刪除列表內某個指定值
X.remove(69)
print(X)

在這邊我取了幾個較常用且好理解的陣列操作函數來進行代表

首先是第四行的陣列增加,由於班上可能有很多同學,我們需要不斷的將同學的成績(元素)用鍵盤輸入至原有的陣列之中,以利更新資料。 在 Python 裡面使用的函式為 陣列名稱.append(值),比較其他程式語言來說, Python 這個功能真的頗實用的 。

但 append 僅能一次增加一個元素進入原陣列,假如我們需要一次輸入多個成積(元素),則必須使用 extend (詳細使用方法參見第八行),我們可以看出, extend 需要輸入的參數必須是一個陣列,也就是把陣列加入原有陣列的概念。

而我們有時候會需要從中間插入值,這時候我們就需要可以指定位置(index)插入原有的陣列中,使用的是 insert 函式。 這個函式需要輸入兩個參數,分別為 ( 位置 , 值 ) ,也就是 ( index, value )。

然而學會了增加元素到陣列中,當然也要學會刪除陣列中的某一個元素,使用的是 del 加上 陣列名稱[位置] 。

若我們需要把整個列表刪除,就很簡單的 del 陣列名稱 就可以了。

最後,我們在使用上可能需要刪除陣列內某個指定值(元素),簡單的說就是你討厭的同學考了69分,你要把他從陣列中踢出去,使用的是 陣列名稱.remove(值)。






↓↓↓ 連結到部落格方針與索引 ↓↓↓

Blog 使用方針與索引