不間斷 Python 挑戰 Day 5 - 串列 (list)

更新於 發佈於 閱讀時間約 7 分鐘

前面提到變數為程式儲存資料的地方,一個變數可以儲存一個學生的成績、一個人的身高、或是一個人名等,但如果多人的資料要管理,為每個人設計一個變數顯然就有點不切實際,串列就是用來解決這樣的問題。

串列

Python的串列可以包含相同型別的元素,例如記錄一個國家的城市,也可以包含不同型別的元素,例如記錄一個人的姓名、身高、體重等個人資料。

>>> city = ["台北", "桃園", "新竹", "台中", "台南"]
>>> print(city)
['台北', '桃園', '新竹', '台中', '台南']
>>> student = ["小明", 140, 45]
>>> print(student)
['小明', 140, 45]

讀取串列元素

我們可以利用串列的索引值(index),來讀取串列的內容,Python的串列索引是標記相對於第一個元素的位置,因此第一個元素的索引值為0、第二個元素的索引值為1,以此類推。此外,若索引值是-1,代表的是串列的最後一個元素、若索引值是-2,代表的是串列的倒數第二個元素,以此類推。

>>> print(student[0])
小明
>>> print(student[1])
140
>>> print(student[2])
45
>>> print(student[-1])
45
>>> print(student[-2])
140
>>> print(student[-3])
小明

若要同時取得串列中的多個元素,可用串列切片(slice)的方式:

  • list[a:b]  # 取得串列索引值為a到(b-1)的元素
  • list[:a]   # 取得串列前a個元素
  • list[a:]   # 取得串列索引值為a到最後一個元素
  • list[a:b:c]  # 以c為間隔取得串列索引值為a到(b-1)的元素
  • list[:]    # 取得串列所有元素

例如:

>>> print(city[2:5])
['新竹', '台中', '台南']
>>> print(city[:2])
['台北', '桃園']
>>> print(city[2:])
['新竹', '台中', '台南']
>>> print(city[1:5:2])
['桃園', '台中']
>>> print(city[:])
['台北', '桃園', '新竹', '台中', '台南']

修改串列元素

串列可指定索引值修改其內容:

>>> student[2] = 50
>>> print(student)
['小明', 140, 50]

增加串列元素

當需要在串列後方增加串列元素時,若使用超出串列長度的索引值來修改串列的內容,程式會產生錯誤。

>>> city[5] = "宜蘭"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range

有幾種方法可以達成這個目標:

  • 串列可和另一串列相加。
>>> city = city + ["宜蘭"]
>>> print(city)
['台北', '桃園', '新竹', '台中', '台南', '宜蘭']
  • 使用append()方法,將新的元素或串列加到串列的尾端。若為串列,則加入後會以串列的形式存在,也就是串列中有元素是串列。
>>> city.append(["花蓮", "台東"])
>>> print(city)
['台北', '桃園', '新竹', '台中', '台南', '宜蘭', ['花蓮', '台東']]
  • 使用extend()方法,將新的串列加到串列的尾端。和append()不同的是,串列會拆解為元素一一加入串列的尾端。
>>> city.extend(["澎湖", "金門"])
>>> print(city)
['台北', '桃園', '新竹', '台中', '台南', '宜蘭', ['花蓮', '台東'], '澎湖', '金門']
  • 使用insert()方法,將新的元素或串列插入指定的位置。
>>> city.insert(4, "嘉義")
>>> print(city)
['台北', '桃園', '新竹', '台中', '嘉義', '台南', '宜蘭', ['花蓮', '台東'], '澎湖', '金門']

刪除串列元素

  • 使用del將串列中指定的元素刪除。
>>> del city[4]
>>> print(city)
['台北', '桃園', '新竹', '台中', '台南', '宜蘭', ['花蓮', '台東'], '澎湖', '金門']
  • 使用pop()將串列中指定的元素刪除,並回傳刪除的元素;若沒有指定,則會刪除串列中最後一個元素。
>>> city.pop()
'金門'
>>> print(city)
['台北', '桃園', '新竹', '台中', '台南', '宜蘭', ['花蓮', '台東'], '澎湖']
>>> city.pop(7)
'澎湖'
>>> print(city)
['台北', '桃園', '新竹', '台中', '台南', '宜蘭', ['花蓮', '台東']]
  • 使用remove()將串列中第一個等於指定的元素的值刪除。
>>> city.remove("宜蘭")
>>> print(city)
['台北', '桃園', '新竹', '台中', '台南', ['花蓮', '台東']]

程式範例

https://github.com/wjweng/marathon_python/blob/master/Day1_to_25/marathon_python_day5.py

留言
avatar-img
留言分享你的想法!
avatar-img
Wei-Jie Weng的沙龍
48會員
36內容數
Wei-Jie Weng的沙龍的其他內容
2022/07/13
對於程式的初學者而言,理解程式的流程、迴圈的進行、或是變數的變化會需要一定程度將程式在腦中進行運算的能力,要一段時間熟悉與適應,尤其是當程式執行的結果不如預期時,往往是計算的過程和自己所想像的不同,這時又更難靠自己的能力找出錯誤。因此,這邊要介紹的這個工具可以將程式執行的過程逐行將變數的變化視覺化地
Thumbnail
2022/07/13
對於程式的初學者而言,理解程式的流程、迴圈的進行、或是變數的變化會需要一定程度將程式在腦中進行運算的能力,要一段時間熟悉與適應,尤其是當程式執行的結果不如預期時,往往是計算的過程和自己所想像的不同,這時又更難靠自己的能力找出錯誤。因此,這邊要介紹的這個工具可以將程式執行的過程逐行將變數的變化視覺化地
Thumbnail
2022/07/13
在上一節介紹了 JSON 資料的基本架構後,我們將改寫並擴充密碼產生器程式,讓它能夠藉由 JSON 的資料結構完成帳密搜尋的功能。
Thumbnail
2022/07/13
在上一節介紹了 JSON 資料的基本架構後,我們將改寫並擴充密碼產生器程式,讓它能夠藉由 JSON 的資料結構完成帳密搜尋的功能。
Thumbnail
2022/06/23
JSON的全名叫JavaScript Object Notation,是由Douglas Crockford所設計的一種資料格式,最初應用在JavaScript程式語言中,做為一種資料交換的格式,而後被廣泛運用在Web開發與NoSQL資料庫,現今已成為一種重要的資料格式。
Thumbnail
2022/06/23
JSON的全名叫JavaScript Object Notation,是由Douglas Crockford所設計的一種資料格式,最初應用在JavaScript程式語言中,做為一種資料交換的格式,而後被廣泛運用在Web開發與NoSQL資料庫,現今已成為一種重要的資料格式。
Thumbnail
看更多
你可能也想看
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
我們介紹了字串和列表的索引和切片操作。索引使用方括號[]來選擇字串或列表中的特定元素,並可以使用正向索引(從0開始)或反向索引(從最後一個元素為-1)來訪問元素。切片使用方括號[]和冒號:來選擇字串或列表中的一段子序列,指定起始位置和結束位置(不包含),並可以使用步長來控制間隔。
Thumbnail
我們介紹了字串和列表的索引和切片操作。索引使用方括號[]來選擇字串或列表中的特定元素,並可以使用正向索引(從0開始)或反向索引(從最後一個元素為-1)來訪問元素。切片使用方括號[]和冒號:來選擇字串或列表中的一段子序列,指定起始位置和結束位置(不包含),並可以使用步長來控制間隔。
Thumbnail
探索Python學習筆記中列表的建立、存取和常用方法。從使用中括號定義列表到了解索引、新增、刪除、修改等操作,並介紹append、remove、count等常用方法。
Thumbnail
探索Python學習筆記中列表的建立、存取和常用方法。從使用中括號定義列表到了解索引、新增、刪除、修改等操作,並介紹append、remove、count等常用方法。
Thumbnail
本文延續從上一篇文章的內容,繼續來介紹如何分別以靜態結構 - 串列(List)及鏈結串列(Linked List)兩種不同的方式來建立實作陣列的新增及修改元素功能。
Thumbnail
本文延續從上一篇文章的內容,繼續來介紹如何分別以靜態結構 - 串列(List)及鏈結串列(Linked List)兩種不同的方式來建立實作陣列的新增及修改元素功能。
Thumbnail
陣列是Python語言的最基礎也最容易實作的資料結構,主要可以透過兩種方式在Python上實踐陣列,其中一種是靜態結構 - 串列(List),另一種則是動態結構 - 鏈結串列(Linked List)。 我們會依序介紹這兩種作法如何在Python上執行陣列的相關功能,並比較兩種方法之間的差異。
Thumbnail
陣列是Python語言的最基礎也最容易實作的資料結構,主要可以透過兩種方式在Python上實踐陣列,其中一種是靜態結構 - 串列(List),另一種則是動態結構 - 鏈結串列(Linked List)。 我們會依序介紹這兩種作法如何在Python上執行陣列的相關功能,並比較兩種方法之間的差異。
Thumbnail
Python提供集合做為其資料結構,它就如同高中數學所學集合的概念,集合的內容一般來說是具有某種特性的事物的整體,例如考試分數及格的群體、數字1到100內的所有奇數、球箱內所有球的顏色等。因此,在一個集合中,每個元素的地位都是相同且無序,並且只能出現一次,集合和集合之間,也可以進行交集、聯集、差集等
Thumbnail
Python提供集合做為其資料結構,它就如同高中數學所學集合的概念,集合的內容一般來說是具有某種特性的事物的整體,例如考試分數及格的群體、數字1到100內的所有奇數、球箱內所有球的顏色等。因此,在一個集合中,每個元素的地位都是相同且無序,並且只能出現一次,集合和集合之間,也可以進行交集、聯集、差集等
Thumbnail
在前面的文章中我們學習了關於字典的基本用法,今天再討論更多關於字典的其它用法,以及它和串列、元組等的關聯。
Thumbnail
在前面的文章中我們學習了關於字典的基本用法,今天再討論更多關於字典的其它用法,以及它和串列、元組等的關聯。
Thumbnail
在程式設計中,我們會使用到一些固定不會變動的資料內容,例如一年的月份、物體的邊長、過去一周的氣溫等等,使用串列的結構固然也可以用來儲存這些資料,但串列可以被新增或刪除,不能有效保護這類不可變動的資料。因此,Python也提供了另一種形式的資料結構,稱為元組,它的資料結構和串列相同,但資料的內容不可變
Thumbnail
在程式設計中,我們會使用到一些固定不會變動的資料內容,例如一年的月份、物體的邊長、過去一周的氣溫等等,使用串列的結構固然也可以用來儲存這些資料,但串列可以被新增或刪除,不能有效保護這類不可變動的資料。因此,Python也提供了另一種形式的資料結構,稱為元組,它的資料結構和串列相同,但資料的內容不可變
Thumbnail
當我們查字典時,會先找到想查詢的單字在字典裡的位置,才能在那個位置找到單字的定義;在Python中,也有一個類似的資料結構稱作字典,字典的鍵(key)就對應到我們要查詢的單字,字典的值(value)則是該單字的定義。
Thumbnail
當我們查字典時,會先找到想查詢的單字在字典裡的位置,才能在那個位置找到單字的定義;在Python中,也有一個類似的資料結構稱作字典,字典的鍵(key)就對應到我們要查詢的單字,字典的值(value)則是該單字的定義。
Thumbnail
前面提到變數為程式儲存資料的地方,一個變數可以儲存一個學生的成績、一個人的身高、或是一個人名等,但如果多人的資料要管理,為每個人設計一個變數顯然就有點不切實際,串列就是用來解決這樣的問題。
Thumbnail
前面提到變數為程式儲存資料的地方,一個變數可以儲存一個學生的成績、一個人的身高、或是一個人名等,但如果多人的資料要管理,為每個人設計一個變數顯然就有點不切實際,串列就是用來解決這樣的問題。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News