若有一點程式語言的基礎就會知道,在C語言中,有著用來存放資料的方法,叫做陣列(array),沒學過的也沒關係,你可以把它想像成是一個存放資料的集合。如果你要記錄一個禮拜的薪水,那要怎麼做呢?可以一個一個變數慢慢定,可是若會陣列的概念,就可以更有效率的找到存放的資料。
在Python中,使用的並不是陣列,是與陣列十分相似的"串列",串列又有分為幾種形式,我們先說最基本的-list。
list是在python中,非常常用的功能,他可以把許多相同性質的資料存放在一起,方便查詢。
money = ['100$','200$']
上面這個例子我建立了一個變數名為money的陣列。陣列由中括號包覆住,裡面可以存放元素,每個元素利用逗號隔開,從左至右,從第0號開始排序。
可以把它印出來看看:
money = ['100$','200$']
print(money) #輸出為 ['100$', '200$']
我們可以用下面這個方式來取出陣列的值:
money = ['100$','200$']
print(money[0]) #取出money陣列的第0(1)個值,輸出為 100$
print(money[1]) #取出money陣列的第1(2)個值,輸出為 200$
若今天想知道陣列中有幾筆資料的話,我們可以用len()來查詢:
money = ['100$','200$']
print(len(money)) #陣列長度為2 輸出為 2
那如果這筆資料很長,你又不知道有幾個元素,那要如何取得最後一個值呢?
你當然可以先用len()查詢有多少筆資料,得到陣列長度後,再print出最後一個數值,可是有另外一個方法比較方便:
money = ['1500$','1400$','2100$','3100$','5400$','2500$','4200$']
print(money[-1]) #取出money陣列的倒數第一個值,輸出為 4200$
print(money[-2]) #取出money陣列的倒數第二個值,輸出為 2500$
若用負號,就代表從後面開始數,就可以獲得後面的值。
若要取得一個範圍的所有值,可以用冒號隔開,如下:
money = ['1500$','1400$','2100$','3100$','5400$','2500$','4200$']
print(money[1:3]) #取出1到2的所有值,輸出為 ['2100$', '3100$']
若起始值為0的話,也可以省略0只打print(money[:3])就好。
這個陣列只有一個禮拜的薪水,今天我想再增加第二個禮拜的值,該怎麼做呢?這時候就要利用insert。
money = ['1500$','1400$','2100$','3100$','5400$','2500$','4200$']
money.insert(1, '6000$') #在陣列的第1(2)個位置插入 6000$ 這個字串元素
print(money) #,輸出為 ['1500$', '6000$', '1400$', '2100$', '3100$', '5400$', '2500$', '4200$']
可以增加當然也可以刪除,想要刪除可以使用remove。
money = ['1500$','1400$','2100$']
money.remove('1500$') #移除money這個串列中的1500$這個元素
print(money)
還有一種做法可以用來移除指定位置的值,叫做pop。
money = ['1500$','1400$','2100$']
money.pop(1) #移除第1(2)個位置的值(1400$)
print(money)
insert中要輸入插入元素的位置以及元素內容,但若要一次插入大量的值的話,我比較建議用合併串列的概念去做。
money = ['1500$','1400$','2100$','3100$','5400$','2500$','4200$']
money2 = ['2000$','4500$','1000$']
money = money + money2
print(money)
利用這種簡單的加法就可以將兩個串列合併了喔!
還有兩種一定要知道的串列功能,分別是:
money = ['1500$','1400$','2100$']
money.sort() #利用ASCII碼的字元大小將三個字串元素排列
print(money) #輸出為 [''1400$','1500$','2100$']
money2 = ['1500$','1400$','2100$']
money2.reverse() #反轉串列順序
print(money2) #輸出為 ['2100$','1400$','1500$']
最基本的list就先講到這裡,明天會開始介紹剩下的串列類型。