list 用法成日出問題?高手教你避開常見錯誤
哈囉,大家今天來跟大家聊聊我平常在寫程式的時候,一個超級常用的東西——「list」的用法。這玩意兒說起來簡單,但剛開始接觸的時候,我也是摸索了好一陣子才比較上手。今天就來分享一下我自己的實踐筆記,希望能對剛入門的朋友有點幫助。
我一開始是怎麼碰到 List 的
記得我剛開始學寫程式的時候,常常需要處理一堆性質相同的資料。比如說,我想記錄一個禮拜每天的開銷、或者一個班級所有同學的成績、又或者待辦事項清單等等。一開始,我真的是土法煉鋼,可能會這樣搞:

expense_day1 = 100
expense_day2 = 150
expense_day3 = 80
... 你看看,如果一個月有30天,那我不是要宣告30個變數?想到就頭大!如果要計算總和或者找出最大值,那簡直是一場災難,程式碼會寫得又臭又長。
後來,我就在學習過程中發現了「list」這個好東西(有些程式語言裡可能叫 array 或 vector,但概念差不多)。它就像一個可以伸縮的容器,能把這些同類型的資料整整齊齊地「裝」在一起。
我的第一個 List 實踐
我第一個正式用 list 的情境,就是想記錄幾本書的書名。那時候我才曉得,原來可以這樣做:
第一步:建立一個空的 List
很多時候,我們會先弄一個空的 list 出來,然後再慢慢把東西放進去。感覺就像先拿到一個空的購物籃一樣。
my_books = []
(我用方括號來表示這是一個 list,裡面啥都沒)
第二步:把書名加進去
接著,我就開始把我有的書一本本加進去。通常會有個類似「append」或「add」的指令可以用。
my_*("三國演義")
my_*("水滸傳")
my_*("紅樓夢")
這樣一來,`my_books` 這個 list 裡面就有三本書名了。是不是比宣告三個變數清爽多了?

怎麼使用 List 裡面的東西?
東西放進去了,總得拿出來用?這時候就要用到「索引」(index) 這個概念了。List 裡面的每個東西都有自己的位置編號,重點來了,這個編號通常是從 0 開始算的! 這一點我剛開始也常常搞混。
在 `my_books` 這個 list 裡面:
- "三國演義" 的索引是 0
- "水滸傳" 的索引是 1
- "紅樓夢" 的索引是 2
取得特定位置的項目:
如果我想拿到第一本書,就可以這樣:
first_book = my_books[0]
(這樣 `first_book` 就會是 "三國演義")
知道 List 裡面有多少東西:
有時候我們會想知道 list 裡面總共有幾個項目,通常會有個像 `length` 或 `size` 的方法可以用。
number_of_books = len(my_books)
(這樣 `number_of_books` 就會是 3)

把 List 裡的東西一個個拿出來處理:
這大概是我最常用的操作了!比如說,我想把所有書名都印出來。這時候就要用到迴圈 (loop)。
我通常會這樣寫 (這只是一個示意,不同程式語言寫法會有點差異):
for book_name in my_books:
print(book_name)
這樣它就會自動把 `my_books` 裡面的東西一個個取出來,放到 `book_name` 這個變數,然後執行 `print` 的動作。超方便!
List 還有哪些好用的地方?
在我後來的實踐中,慢慢發現 list 的更多妙用:
- 修改項目: 如果我後來發現「紅樓夢」其實是「石頭記」的另一個名字,想改一下,可以直接透過索引改: `my_books[2] = "石頭記"`。
- 插入項目: 不一定只能從尾巴加,也可以在中間插入新的書名。
- 刪除項目: 某本書送人了,就可以把它從 list 裡面移除。
- 排序: 如果是一堆數字,還可以叫 list 幫我從小到大或從大到小排
當然,list 的用法遠不止這些,但上面這些是我覺得最基礎也最核心的。我一開始就是先搞懂怎麼新增、取得、遍歷 (就是用迴圈一個個看),就解決了我很多問題。

我踩過的一些小坑
說到實踐,免不了會踩坑。關於 list,我最常犯的錯就是「索引超出範圍」(index out of bounds)。
比如說,我的 `my_books` 只有三本書 (索引 0, 1, 2),但我不小心寫了 `my_books[3]`,想去拿第四本書。程式通常就會直接報錯給我看,跟我說:「老兄,你要拿的東西超出籃子的範圍!」
所以後來我在用索引存取 list 裡面的東西時,都會特別小心,確認索引值沒有超過 `list長度 - 1`。
總結一下
總之,list 對我來說,就像是程式設計裡的瑞士刀一樣,非常萬用。從最簡單的資料收集,到後面更複雜的資料結構操作,都離不開它。我一開始也是從最基本的建立、新增、讀取開始練起,慢慢熟悉它的脾氣。如果你也正在學程式,或者剛接觸到 list,真心建議你多動手試試看,找些小例子來練習,比如說用 list 記錄你的購物清單、待辦事項,然後試著去新增、刪除、修改、印出裡面的內容。相信我,一旦上手了,你會發現它有多好用!
今天關於 list 用法的實踐分享就到這邊。希望對大家有幫助!下次有機會再聊聊別的!