[Python筆記] 新手指南:使用聖誕節主題學習內建序列函式

更新於 2024/12/13閱讀時間約 7 分鐘

What's up guys! 我是 Rex,今天繼續跟大家分享我的 Python 筆記。

Introduction

前幾天我們總共介紹了四個資料結構,分別是 List、Dictionary、Set 和 Tuple。如果讀者還不熟悉的話,歡迎閱讀我前幾篇文章,熟悉這些資料結構的使用方法及應用。今天的主題不是資料結構,但可以看作是資料結構應用的延伸。正題開始,這些資料結構都是可迭代的(iterable),可迭代代表一個物件可以使用 for loop 存取資料。除了前面提到的四個資料結構,還有其他資料型態,例如字串(String)也是 Iterable。今天這篇文章就將向各位讀者介紹實用的內建序列函式——enumeratezipsortedreversed

特點:

  • 簡化迭代任務:這些函式簡化了常見的任務。例如,enumerate() 讓你在迭代過程中無需手動追蹤索引,就能夠同時訪問索引和值,而 zip() 能夠無縫地將多個序列組合成對或元組。
  • 提高代碼可讀性:它們讓你的代碼更加清晰、易於理解,相比於傳統的循環或手動維護計數器,這有助於代碼的可維護性並減少錯誤的可能性。
  • 高效和優化:這些函式被內建於 Python 核心,速度更快且內存消耗更低

Coding Example

  1. enumerate() - 這個函式適用於索引for 循環中的同時需要。它會給每個迭代的元素分配一個索引,使得在處理大清單或列表時更加方便。例如,我們可以用來列出每個編號以及禮物名稱。
decorations = ["Lights", "Tree", "Ornaments", "Wreath"] 
for index, item in enumerate(decorations):
print(f"{index + 1}. {item}") # output 1. Lights 2. Tree ...
  1. zip() - 這個函式允許將一個或多個可迭代對象中的對應元素組合成一個元組。它在需要將多個列表或序列元素合併成一對時非常實用。例如,我們可以用 zip() 整理客人名單、客人住處、以及他們的禮物。
names = ["Alice", "Bob", "Charlie"]
addresses = ["Taipei", "Tainan", "Taichung"]
gifts = ["Socks", "Chocolate", "Scarf"]
for name, address, gift in zip(names, addresses, gifts):
print(f"{name} living in {address} will receive {gift}") # Alice living in Taipei will receive Socks ...
  1. sorted() - 這個函式針對可迭代對象進行排序。假設你在聖誕節收到一堆聖誕卡片,你想按照姓名字母的順序打開信封。 (下面的範例,可以看到第一個印出的信件是 Alice 寄來的)
christmas_cards = [("Bob", "感謝你的禮物!"), ("Charlie", "聖誕愉快!"), ("Alice", "聖誕快樂!"), ("David", "歡度佳節!")]

# 按照姓名第一個字母排序​
sorted_cards = sorted(christmas_cards, key=lambda card: card[0])
for card in sorted_cards:
print(f"寄件人:{card[0]}, 訊息:{card[1]}") # 寄件人:Alice, 訊息:聖誕快樂! ...
  1. reversed() - 函式由後往前讀取可迭代對象的元素。例如,如果你想先打開最先收到的信,然後逐步打開比較早收到的信,可以使用 reversed() 函式來顯示收到的信件倒序排列。這樣做可以讓你優先查看最新收到的信件。
christmas_cards = [("Bob", "感謝你的禮物!"), ("Charlie", "聖誕愉快!"), ("Alice", "聖誕快樂!"), ("David", "歡度佳節!")]

# 按照姓名第一個字母排序​
reversed_cards = list(reversed(christmas_cards))
for card in sorted_cards:
print(f"寄件人:{card[0]}, 訊息:{card[1]}") # 寄件人:David, 訊息:歡度佳節!

[備註: 雖然以上的例子都是以 List 儲存資料,但讀者們可以嘗試將其換成其他型態來儲存資料,其實只要是 iterable 都行得通!]

今天的內容也相對簡單,我這邊介紹了書中所提到的所有內建序列函式。就我的經驗而言,zip()enumerate() 是我在專案中最常看到的兩個用法,請各位讀者務必多加練習!在教學的最後,我會提到兩個與元組相關的 coding 題目以及一個觀念題。邀請各位讀者一起練習,希望大家能夠透過這些練習,進一步加深對這些內建函式的理解和應用。

Coding Question

  1. 使用 enumerate 函數來打印每個水果的索引和值。
  2. 給定三個長度相同的列表,使用 zip 函數來創建一個包含這兩個列表中對應元素的元組的新列表。

Concept Question

  1. 解釋使用內建序列函式如 enumerate(), sorted(), zip(), 和 reversed() 如何提高代碼的可讀性和效率。

Conclusion

今天的教學就到這裡啦!希望大家透過這篇文章對內建序列函式有更深入的了解。如果你對文章中提到的操作或應用有任何問題,歡迎在留言區討論,或者分享你使用這些函式解決問題的經驗!也別忘了試試我提供的練習題目喔!祝大家練習順利,我們下次見啦~

Reference


avatar-img
1會員
7內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
CodingWRex的沙龍 的其他內容
在這篇Python筆記中,我們將探索如何使用元組來管理地理資訊數據。元組是一種有序且不可變的資料結構,非常適合用於儲存地理座標等固定不變的資料。通過實際的Coding Example,我們將展示如何定義元組、進行解包操作,並如何利用元組來簡化地理資訊的管理和處理。
這篇文章介紹了集合,集合特點包括唯一元素和無順序特性,使其在資料處理中非常實用,例如去重和進行數學集合運算。文章以聖誕節為背景,舉例說明集合如何在計劃聖誕節旅行時幫助篩選重複的旅行地點和比較不同朋友的願望清單。通過使用Python集合,讀者可以更深入了解它們的應用和數學操作,並增強對集合概念的理解。
這次主題是字典。字典是一種靈活的數據結構,用於儲存鍵值對。它們提供快速的查找功能,適合管理數據。 文章展示了如何用字典來儲存和操作旅遊地點的中文和英文名稱,例如如何讀取、新增、修改和刪除項目。這些基本操作在資料分析和工作中至關重要。未來 Rex 會介紹更多資料結構的應用,歡迎繼續關注並留言交流!
在這篇文章中,Rex 分享了 Python 中的資料結構 - 列表。列表是一種可變且長度可變的序列,可以包含多種數據類型。文章介紹了列表的優點及其基本操作,包括新增、插入和刪除項目,並透過實際的旅遊清單範例來說明。適合對 Python 感興趣的初學者,瞭解列表的基本用法及其特性。
在這篇Python筆記中,我們將探索如何使用元組來管理地理資訊數據。元組是一種有序且不可變的資料結構,非常適合用於儲存地理座標等固定不變的資料。通過實際的Coding Example,我們將展示如何定義元組、進行解包操作,並如何利用元組來簡化地理資訊的管理和處理。
這篇文章介紹了集合,集合特點包括唯一元素和無順序特性,使其在資料處理中非常實用,例如去重和進行數學集合運算。文章以聖誕節為背景,舉例說明集合如何在計劃聖誕節旅行時幫助篩選重複的旅行地點和比較不同朋友的願望清單。通過使用Python集合,讀者可以更深入了解它們的應用和數學操作,並增強對集合概念的理解。
這次主題是字典。字典是一種靈活的數據結構,用於儲存鍵值對。它們提供快速的查找功能,適合管理數據。 文章展示了如何用字典來儲存和操作旅遊地點的中文和英文名稱,例如如何讀取、新增、修改和刪除項目。這些基本操作在資料分析和工作中至關重要。未來 Rex 會介紹更多資料結構的應用,歡迎繼續關注並留言交流!
在這篇文章中,Rex 分享了 Python 中的資料結構 - 列表。列表是一種可變且長度可變的序列,可以包含多種數據類型。文章介紹了列表的優點及其基本操作,包括新增、插入和刪除項目,並透過實際的旅遊清單範例來說明。適合對 Python 感興趣的初學者,瞭解列表的基本用法及其特性。
你可能也想看
Google News 追蹤
Thumbnail
本文探討了複利效應的重要性,並藉由巴菲特的投資理念,說明如何選擇穩定產生正報酬的資產及長期持有的核心理念。透過定期定額的投資方式,不僅能減少情緒影響,還能持續參與全球股市的發展。此外,文中介紹了使用國泰 Cube App 的便利性及低手續費,幫助投資者簡化投資流程,達成長期穩定增長的財務目標。
re 模組基本介紹 re 模組是 Python 用來處理正則表達式的標準模組。 正則表達式是一種用於描述字串模式的語法,可以用來匹配、搜尋、分割和替換字串中的特定模式。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
本文介紹了在進行資料分析時,將類別欄位轉換為數值欄位的方法,包括Label Encoding、One-Hot Encoding、Binary Encoding、Target Encoding和Frequency Encoding。每種方法的應用範例、優缺點和適用場景都有詳細說明。
ITS python認證內容含蓋六大主題
Thumbnail
Python 提供了一系列內建函式,其中一部分涉及數學和數學操作。 以下是一些常用的內建函式和數學相關的函式: 基本數學運算: abs(x): 返回 x 的絕對值。 result = abs(-5) print(result) # 輸出: 5 max(iterable) 和 min(
Thumbnail
Python 提供了一個功能豐富的標準函式庫,其中 random 專門用於生成隨機數。本文將介紹 random 的基本介紹,以及函式應用。
Thumbnail
宣告變數 變數是程式中用來儲存和表示數據的標識符號​,並將變數存放在某個記憶體位子 可以用ID的方法查找變數存在哪個記憶體,此方法有利於以後查找問題用。 在大多數程式語言中,變數需要事先聲明(宣告)並賦值。 而Python是一種動態類型語言,不需要顯式宣告變數類型,而是在賦值時自動進行推斷。
Thumbnail
本文探討了複利效應的重要性,並藉由巴菲特的投資理念,說明如何選擇穩定產生正報酬的資產及長期持有的核心理念。透過定期定額的投資方式,不僅能減少情緒影響,還能持續參與全球股市的發展。此外,文中介紹了使用國泰 Cube App 的便利性及低手續費,幫助投資者簡化投資流程,達成長期穩定增長的財務目標。
re 模組基本介紹 re 模組是 Python 用來處理正則表達式的標準模組。 正則表達式是一種用於描述字串模式的語法,可以用來匹配、搜尋、分割和替換字串中的特定模式。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
本文介紹了在進行資料分析時,將類別欄位轉換為數值欄位的方法,包括Label Encoding、One-Hot Encoding、Binary Encoding、Target Encoding和Frequency Encoding。每種方法的應用範例、優缺點和適用場景都有詳細說明。
ITS python認證內容含蓋六大主題
Thumbnail
Python 提供了一系列內建函式,其中一部分涉及數學和數學操作。 以下是一些常用的內建函式和數學相關的函式: 基本數學運算: abs(x): 返回 x 的絕對值。 result = abs(-5) print(result) # 輸出: 5 max(iterable) 和 min(
Thumbnail
Python 提供了一個功能豐富的標準函式庫,其中 random 專門用於生成隨機數。本文將介紹 random 的基本介紹,以及函式應用。
Thumbnail
宣告變數 變數是程式中用來儲存和表示數據的標識符號​,並將變數存放在某個記憶體位子 可以用ID的方法查找變數存在哪個記憶體,此方法有利於以後查找問題用。 在大多數程式語言中,變數需要事先聲明(宣告)並賦值。 而Python是一種動態類型語言,不需要顯式宣告變數類型,而是在賦值時自動進行推斷。