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

更新於 發佈於 閱讀時間約 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
留言分享你的想法!
avatar-img
CodingWRex的沙龍
1會員
7內容數
CodingWRex的沙龍的其他內容
2024/12/17
在這篇新手必學指南中,探索如何使用 Python 的 Lambda Function 來進行資料篩選和轉換操作。從篩選數字到調整產品價格,通過實際範例和練習題,幫助你更清晰地理解其應用以及主要優點,並學會如何在 Python 中高效處理資料。開始提升你的 Python 技能,掌握資料分析的基本技巧!
Thumbnail
2024/12/17
在這篇新手必學指南中,探索如何使用 Python 的 Lambda Function 來進行資料篩選和轉換操作。從篩選數字到調整產品價格,通過實際範例和練習題,幫助你更清晰地理解其應用以及主要優點,並學會如何在 Python 中高效處理資料。開始提升你的 Python 技能,掌握資料分析的基本技巧!
Thumbnail
2024/12/16
本篇Python筆記介紹了List和Dictionary Comprehensions的應用與優勢。通過具體例子展示如何利用這些生成式來進行資料篩選、轉換和整合,並提升程式碼的可讀性和效能。適合新手學習如何用簡潔的語法來快速創建和操作資料結構,幫助你在資料分析中更靈活應用Python。
Thumbnail
2024/12/16
本篇Python筆記介紹了List和Dictionary Comprehensions的應用與優勢。通過具體例子展示如何利用這些生成式來進行資料篩選、轉換和整合,並提升程式碼的可讀性和效能。適合新手學習如何用簡潔的語法來快速創建和操作資料結構,幫助你在資料分析中更靈活應用Python。
Thumbnail
2024/12/12
在這篇Python筆記中,我們將探索如何使用元組來管理地理資訊數據。元組是一種有序且不可變的資料結構,非常適合用於儲存地理座標等固定不變的資料。通過實際的Coding Example,我們將展示如何定義元組、進行解包操作,並如何利用元組來簡化地理資訊的管理和處理。
Thumbnail
2024/12/12
在這篇Python筆記中,我們將探索如何使用元組來管理地理資訊數據。元組是一種有序且不可變的資料結構,非常適合用於儲存地理座標等固定不變的資料。通過實際的Coding Example,我們將展示如何定義元組、進行解包操作,並如何利用元組來簡化地理資訊的管理和處理。
Thumbnail
看更多
你可能也想看
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
在這篇文章中,通過聖誕節主題來學習Python內建序列函式。介紹了enumerate(), zip(), sorted() 和 reversed()。示範了如何在迭代過程中追蹤索引和值、將多個序列合併成對、對可迭代對象進行排序和反向顯示等操作。這些函式簡化了代碼,提升了可讀性和效能,適合新手學習。
Thumbnail
在這篇文章中,通過聖誕節主題來學習Python內建序列函式。介紹了enumerate(), zip(), sorted() 和 reversed()。示範了如何在迭代過程中追蹤索引和值、將多個序列合併成對、對可迭代對象進行排序和反向顯示等操作。這些函式簡化了代碼,提升了可讀性和效能,適合新手學習。
Thumbnail
Array可以說是各種語言除了基本型別之外,最常用的資料型別與容器之一了。 Array 這種連續格子狀的資料結構,在Python要怎麼表達呢? 建立一個空的陣列 最簡單也最直接的寫法就是 array = [] # Python list [] 就對應到大家熟知的array 陣列型態的資料結
Thumbnail
Array可以說是各種語言除了基本型別之外,最常用的資料型別與容器之一了。 Array 這種連續格子狀的資料結構,在Python要怎麼表達呢? 建立一個空的陣列 最簡單也最直接的寫法就是 array = [] # Python list [] 就對應到大家熟知的array 陣列型態的資料結
Thumbnail
Basic python data structure
Thumbnail
Basic python data structure
Thumbnail
List 清單 和 Tuple元組 清單在Python裡面非常的常用,大家一定要熟練這些基礎的元素。 在Python中,列表(List)是一種常用的資料類型,用於儲存一組有序的元素。列表是可變的(Mutable),這意味著你可以在列表中新增、刪除和修改元素。列表使用方括號 []
Thumbnail
List 清單 和 Tuple元組 清單在Python裡面非常的常用,大家一定要熟練這些基礎的元素。 在Python中,列表(List)是一種常用的資料類型,用於儲存一組有序的元素。列表是可變的(Mutable),這意味著你可以在列表中新增、刪除和修改元素。列表使用方括號 []
Thumbnail
sort reverse count index copy len min max sum any all
Thumbnail
sort reverse count index copy len min max sum any all
Thumbnail
Hi,大家好。我是茶桁。 最近几节课,我们都是在详细讲解Python内的数据类型,上一节课我们详细了解了字符串,这节课,让我们来详解一下列表。 首先,我们先有一个大的概念,列表,其实就是一组有序的数据组合;另外,列表中的数据是可以被修改的。也就是说,列表是一个可变序列类型。 列表定义 如何在
Thumbnail
Hi,大家好。我是茶桁。 最近几节课,我们都是在详细讲解Python内的数据类型,上一节课我们详细了解了字符串,这节课,让我们来详解一下列表。 首先,我们先有一个大的概念,列表,其实就是一组有序的数据组合;另外,列表中的数据是可以被修改的。也就是说,列表是一个可变序列类型。 列表定义 如何在
Thumbnail
我們將會學習 Python 中的數據結構。 主要的數據結構包括列表 (List)、元組 (Tuple)、字典 (Dictionary) 以及集合 (Set)。
Thumbnail
我們將會學習 Python 中的數據結構。 主要的數據結構包括列表 (List)、元組 (Tuple)、字典 (Dictionary) 以及集合 (Set)。
Thumbnail
我們介紹了字串和列表的索引和切片操作。索引使用方括號[]來選擇字串或列表中的特定元素,並可以使用正向索引(從0開始)或反向索引(從最後一個元素為-1)來訪問元素。切片使用方括號[]和冒號:來選擇字串或列表中的一段子序列,指定起始位置和結束位置(不包含),並可以使用步長來控制間隔。
Thumbnail
我們介紹了字串和列表的索引和切片操作。索引使用方括號[]來選擇字串或列表中的特定元素,並可以使用正向索引(從0開始)或反向索引(從最後一個元素為-1)來訪問元素。切片使用方括號[]和冒號:來選擇字串或列表中的一段子序列,指定起始位置和結束位置(不包含),並可以使用步長來控制間隔。
Thumbnail
探索Python學習筆記中列表的建立、存取和常用方法。從使用中括號定義列表到了解索引、新增、刪除、修改等操作,並介紹append、remove、count等常用方法。
Thumbnail
探索Python學習筆記中列表的建立、存取和常用方法。從使用中括號定義列表到了解索引、新增、刪除、修改等操作,並介紹append、remove、count等常用方法。
Thumbnail
陣列是Python語言的最基礎也最容易實作的資料結構,主要可以透過兩種方式在Python上實踐陣列,其中一種是靜態結構 - 串列(List),另一種則是動態結構 - 鏈結串列(Linked List)。 我們會依序介紹這兩種作法如何在Python上執行陣列的相關功能,並比較兩種方法之間的差異。
Thumbnail
陣列是Python語言的最基礎也最容易實作的資料結構,主要可以透過兩種方式在Python上實踐陣列,其中一種是靜態結構 - 串列(List),另一種則是動態結構 - 鏈結串列(Linked List)。 我們會依序介紹這兩種作法如何在Python上執行陣列的相關功能,並比較兩種方法之間的差異。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News