文章程式碼顯示

2017年8月23日 星期三

一起學 Python - 11 :陣列、列表的使用(2)

因為陣列的概念對於沒有程式設計的新手而言是較新穎的概念,而其又比較繁瑣複雜,時常需要動腦想一下,故我將陣列的使用切割成三段,方便大家吸收。


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

# 查詢在陣列中有沒有某個值

find = 79 in X
find1 = 79 not in X
print(find)
print(find1)

# 查詢某個值在陣列中的位置

pos = X.index(79)
print(pos)

pos1 = X.index(79, 2 , 6) #若輸入5則不會包含5,所以要輸入6
print(pos1)

pos2 = X.index(79, 2) # 更簡便的(省略尾參數),從第2個元素(頭參數)開始尋找,直到最後一個index
print(pos2)

# 計算某個值在陣列中出現的次數

COUNT = X.count(79)
print(COUNT)

首先我們再將原本的陣列重建一次,在應用上我們時常會想要知道在這個陣列中有沒有存在某一個值,而 Python 正好有支援這個功能 ,如程式碼第七、八行,只要陣列中有存在 79 這個數字,就會回傳 True 反之回傳 False 。

然而知道這個值有存在於陣列中,這還不夠!我們或許會希望知道這個值(元素, element)所在的位置(index),使用的函數為 函數名稱.index(值) 。 相信在此大家就會有種豁然開朗的感覺,為什麼我在文章中時常會將元素(element)、位置(index)順帶寫出英文呢? 原因就在於有些函式的名稱正好是對應的。

index 函數除了可以直接查找所要搜尋的值之位置(index)以外,還可以依據指定的範圍來進行尋找。由程式碼中第二行我們可以看出,在第 1 個位置(請牢記計數要從 0 開始),以及在陣列中最後一個位置(end index)都有數字79,而恰好我們用 index 函式尋找的就是要搜尋 79 這個數字, Python 沒有辦法一次幫你找出所有 79 的位置在哪裡,所以我們必須加以限制搜尋的範圍,在程式碼第 17 行中第二個參數為搜尋的頭位置,以此類推第三個參數為末位置。需注意的是,其在輸入搜尋的位置時是不包含那個位置的,從第 17 行的註解可以看出來,當我的末參數輸入 5 的時候,因為 79 剛好在位置 5 , 所以會沒辦法被搜尋到,所以我們必須指定為 6 。

然而大家會說拉 , 既然我肉眼都可以判斷了,我要電腦做什麼? 當然是數據組很大我才要電腦幫忙阿 ! 然而 Python 的功能很強大的,我們可以不要輸入末參數,也就是只要指定頭參數就好,末參數會自動從頭參數指定的位置一路找到最後一個元素的位置。

這個概念需要記住。 當我們在陣列操作時省略了某個參數,很有可能是我們想要他自動從頭開始搜尋或是自動搜尋到尾(在一起學 Python - 12 :陣列、列表的使用(3)將會遇到,在此看不懂就算了)

最後,我們可能會希望知道某個值在陣列中出現的次數,以方便我們檢驗是不是找到所有我們要的數字了。使用的是函數 陣列名稱.count(值)

















※ Python 似乎沒有 如 Matlab 的矩陣與常數相加則自動讓每個 element 加上常數的功能(待查)
※ 能不能將陣列直接搭配判斷式使用呢? 實現查找低於 60 分的個數? (待查)

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

Blog 使用方針與索引