不間斷 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
Wei-Jie Weng的沙龍
52會員
37內容數
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
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
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也提供了另一種形式的資料結構,稱為元組,它的資料結構和串列相同,但資料的內容不可變
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News