不靠索引也能提取列表資料
如果不需要更新列表中的資料,我們其實可以用更精簡的語法去遞迴列表。in 關鍵字負責宣告 friend 變數,儲存每一次遞迴所提取的列表資料:
| |
這種簡潔的語法在尋找列表資料時尤其方便,因為我們只在乎列表的資料值,索引直接捨棄也不用在意,像極了哥布林的愛情:
| |
尋找最大數
這算是個小技巧(?),如果我們想從列表中找出最大數,可以先將初始值宣告為float("-inf"),這樣便能確保列表中每個數字都比它更大。接下來用遞迴陸續找出更大的數值,然後取代它就可以了。
| |
同理,若是要找出最小數,將初始值變數宣告為float("inf")即可。
切割列表
我們可以用 : 切割出列表的特定區段,那回傳的會是一個新的列表。除了從哪裡開始、到哪裡結束之外,我們還能指定中間要跳過幾筆資料 (step)。
| |
舉個 🌰 :
| |
上述案例用中文翻譯:從索引 1 開始,切到索引 4 (不包含 5),中間每 2 個位置跳過。
但其實切割列表不一定要填滿三個條件。比方說 numbers[:3] 代表「從頭開始切到索引 3,但不包含它」。而 numbers[:3] 則表示「從索引 3 開始切到尾端」。
| |
雖然平常比較少看到,但也可以只帶入 step,也就是從頭切到尾,中間跳過 x 個位置。
| |
用負指數來切割列表
有時候我們會想從尾端往前考慮要如何切割列表,剛好 Python 提供了負指數滿足這個需求。舉例來說,numbers[-1] 會切出列表最後一筆資料,而 numbers[-2] 則切出倒數第二筆資料,以此類推。
負指數當然也能結合上述的切割運算式:
| |
合併列表
在 Python 合併列表超簡單,直接用 + 就好,我真的可以這麼幸福嗎?
| |
查詢列表
別急,還有更幸福的。在 Python 查詢列表是否含有特定資料,直接用 in 關鍵字即可!回傳值為 True 或是 False。
| |
刪除列表中的資料
Python 提供了 del 關鍵字方便我們移除列表中的資料。我們只需要指定資料的索引位置,或是切割範圍即可。
注意,
del會直接更動 (mutate) 列表中的資料。
| |