iT邦幫忙

2021 iThome 鐵人賽

DAY 9
1
自我挑戰組

從Python的基礎到套件的使用-用30天帶大家認識Python系列 第 9

Day 9 : 存放資料的收納庫-串列資料(上)

  • 分享至 

  • xImage
  •  

若有一點程式語言的基礎就會知道,在C語言中,有著用來存放資料的方法,叫做陣列(array),沒學過的也沒關係,你可以把它想像成是一個存放資料的集合。如果你要記錄一個禮拜的薪水,那要怎麼做呢?可以一個一個變數慢慢定,可是若會陣列的概念,就可以更有效率的找到存放的資料。

在Python中,使用的並不是陣列,是與陣列十分相似的"串列",串列又有分為幾種形式,我們先說最基本的-list。

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)

利用這種簡單的加法就可以將兩個串列合併了喔!

還有兩種一定要知道的串列功能,分別是:

  • sort():排序串列
  • reverse():反轉串列
money = ['1500$','1400$','2100$']
money.sort() #利用ASCII碼的字元大小將三個字串元素排列
print(money) #輸出為 [''1400$','1500$','2100$']

money2 = ['1500$','1400$','2100$']
money2.reverse() #反轉串列順序
print(money2) #輸出為 ['2100$','1400$','1500$']

最基本的list就先講到這裡,明天會開始介紹剩下的串列類型。


上一篇
Day 8 : 字串處理
下一篇
Day 10 : 存放資料的收納庫-串列資料(下)
系列文
從Python的基礎到套件的使用-用30天帶大家認識Python30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言