不間斷 Python 挑戰 Day 15 - 更多關於字典 (Dictionary)

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

前面的文章中我們學習了關於字典的基本用法,今天再討論更多關於字典的其它用法,以及它和串列、元組等的關聯。

使用for迴圈迭代

  • 字典可以使用for迴圈迭代,最簡單的語法如下,須注意此處取得的是字典的鍵:
cities_dict = { "台北": 2531659,
         "新北": 4011586,
         "桃園": 2272452,
         "台中": 2814422,
         "台南": 1863435,
         "高雄": 2746939}

for city in cities_dict:
  print(city, end=" ")

執行結果:

台北 新北 桃園 台中 台南 高雄
  • 明確一點,若要取得字典的鍵可以使用字典的keys()方法:
for city in cities_dict.keys():
  print(city, end=" ")

執行結果和前面相同:

台北 新北 桃園 台中 台南 高雄
  • 若想取得的是字典的值,可以使用字典的values()方法:
for population in cities_dict.values():
  print(population, end=" ")

執行結果:

2531659 4011586 2272452 2814422 1863435 2746939
  • 也可以鍵和值同時取出,使用的是字典的items()方法,字典的鍵將傳給city、字典的值將傳給population:
for city, population in cities_dict.items():
  print(city, population, end=" ")

執行結果:

台北 2531659 新北 4011586 桃園 2272452 台中 2814422 台南 1863435 高雄 2746939
  • 實際上,items()方法傳回的資料型態是元組,上述方法只是用兩個變數分別去存取元組的內容:
for city_pop in cities_dict.items():
  print(city_pop, end=" ")

執行結果:

('台北', 2531659) ('新北', 4011586) ('桃園', 2272452) ('台中', 2814422) ('台南', 1863435) ('高雄', 2746939)

串列元素為字典

串列內的元素可以是字典,在以上的例子中,當每個城市除了人口數之外,需要記錄的特徵變多了,例如城市的面積,我們可以把每個城市的資訊建成一個字典,再把所有的字典放入一個串列中管理。

city0 = { "name": "台北", "population": 2531659, "area": 271}
city1 = { "name": "新北", "population": 4011586, "area": 2052}
city2 = { "name": "桃園", "population": 2272452, "area": 1220}
city3 = { "name": "台中", "population": 2814422, "area": 2214}
city4 = { "name": "台南", "population": 1863435, "area": 2191}
city5 = { "name": "高雄", "population": 2746939, "area": 2951}
special_municipality_list = [city0, city1, city2, city3, city4, city5]
for city in special_municipality_list:
  print(city)

執行結果:

{'name': '台北', 'population': 2531659, 'area': 271}
{'name': '新北', 'population': 4011586, 'area': 2052}
{'name': '桃園', 'population': 2272452, 'area': 1220}
{'name': '台中', 'population': 2814422, 'area': 2214}
{'name': '台南', 'population': 1863435, 'area': 2191}
{'name': '高雄', 'population': 2746939, 'area': 2951}

字典的值為串列

字典內的值可以為串列,如以下例子分別列舉了亞洲、歐洲與美洲做為字典的鍵,各大洲的一些國家分別儲存在陣列,做為字典的值,搭配字典的items()方法可以將其內容取出。

countries_dict = { "Asia": ["Japan", "Korea", "Taiwan"],
           "Europe": ["Germany", "France", "Spain"],
           "America": ["USA", "Canada", "Argentina"]}
for continent, country in countries_dict.items():
  print(f"{continent}: {country}")

執行結果:

Asia: ['Japan', 'Korea', 'Taiwan']
Europe: ['Germany', 'France', 'Spain']
America: ['USA', 'Canada', 'Argentina']

字典的值為字典

字典內的值也可以為字典,我們改寫前面字典串列的例子,把城市名稱做為鍵、城市的資訊做為值存入字典,再搭配字典的items()方法將其內容取出。

cities_dict = { "台北": {"population": 2531659, "area": 271},
         "新北": {"population": 4011586, "area": 2052},
         "桃園": {"population": 2272452, "area": 1220},
         "台中": {"population": 2814422, "area": 2214},
         "台南": {"population": 1863435, "area": 2191},
         "高雄": {"population": 2746939, "area": 2951}}
for city, info in cities_dict.items():
  print(f"{city}: {info}")

執行結果:

Asia: ('Japan', 'Korea', 'Taiwan')
Europe: ('Germany', 'France', 'Spain')
America: ('USA', 'Canada', 'Argentina')

程式範例

https://github.com/wjweng/marathon_python/blob/master/Day1_to_25/marathon_python_day15.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
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
介紹朋友新開的蝦皮選物店『10樓2選物店』,並分享方格子與蝦皮合作的分潤計畫,註冊流程簡單,0成本、無綁約,推薦給想增加收入的讀者。
Thumbnail
介紹朋友新開的蝦皮選物店『10樓2選物店』,並分享方格子與蝦皮合作的分潤計畫,註冊流程簡單,0成本、無綁約,推薦給想增加收入的讀者。
Thumbnail
Dictionary 字典 和 Set 集合 字典(Dictionary)是 Python 中一個常用的資料結構,用於儲存一組鍵值對(Key-Value pairs)。集合(Set)是 Python 中的一種無序、可變的資料結構,用於存儲多個元素,且集合中的元素是唯一的(不重複)
Thumbnail
Dictionary 字典 和 Set 集合 字典(Dictionary)是 Python 中一個常用的資料結構,用於儲存一組鍵值對(Key-Value pairs)。集合(Set)是 Python 中的一種無序、可變的資料結構,用於存儲多個元素,且集合中的元素是唯一的(不重複)
Thumbnail
我們將會學習 Python 中的數據結構。 主要的數據結構包括列表 (List)、元組 (Tuple)、字典 (Dictionary) 以及集合 (Set)。
Thumbnail
我們將會學習 Python 中的數據結構。 主要的數據結構包括列表 (List)、元組 (Tuple)、字典 (Dictionary) 以及集合 (Set)。
Thumbnail
我們介紹了字串和列表的索引和切片操作。索引使用方括號[]來選擇字串或列表中的特定元素,並可以使用正向索引(從0開始)或反向索引(從最後一個元素為-1)來訪問元素。切片使用方括號[]和冒號:來選擇字串或列表中的一段子序列,指定起始位置和結束位置(不包含),並可以使用步長來控制間隔。
Thumbnail
我們介紹了字串和列表的索引和切片操作。索引使用方括號[]來選擇字串或列表中的特定元素,並可以使用正向索引(從0開始)或反向索引(從最後一個元素為-1)來訪問元素。切片使用方括號[]和冒號:來選擇字串或列表中的一段子序列,指定起始位置和結束位置(不包含),並可以使用步長來控制間隔。
Thumbnail
Python提供集合做為其資料結構,它就如同高中數學所學集合的概念,集合的內容一般來說是具有某種特性的事物的整體,例如考試分數及格的群體、數字1到100內的所有奇數、球箱內所有球的顏色等。因此,在一個集合中,每個元素的地位都是相同且無序,並且只能出現一次,集合和集合之間,也可以進行交集、聯集、差集等
Thumbnail
Python提供集合做為其資料結構,它就如同高中數學所學集合的概念,集合的內容一般來說是具有某種特性的事物的整體,例如考試分數及格的群體、數字1到100內的所有奇數、球箱內所有球的顏色等。因此,在一個集合中,每個元素的地位都是相同且無序,並且只能出現一次,集合和集合之間,也可以進行交集、聯集、差集等
Thumbnail
在前面的文章中我們學習了關於字典的基本用法,今天再討論更多關於字典的其它用法,以及它和串列、元組等的關聯。
Thumbnail
在前面的文章中我們學習了關於字典的基本用法,今天再討論更多關於字典的其它用法,以及它和串列、元組等的關聯。
Thumbnail
在程式設計中,我們會使用到一些固定不會變動的資料內容,例如一年的月份、物體的邊長、過去一周的氣溫等等,使用串列的結構固然也可以用來儲存這些資料,但串列可以被新增或刪除,不能有效保護這類不可變動的資料。因此,Python也提供了另一種形式的資料結構,稱為元組,它的資料結構和串列相同,但資料的內容不可變
Thumbnail
在程式設計中,我們會使用到一些固定不會變動的資料內容,例如一年的月份、物體的邊長、過去一周的氣溫等等,使用串列的結構固然也可以用來儲存這些資料,但串列可以被新增或刪除,不能有效保護這類不可變動的資料。因此,Python也提供了另一種形式的資料結構,稱為元組,它的資料結構和串列相同,但資料的內容不可變
Thumbnail
當我們查字典時,會先找到想查詢的單字在字典裡的位置,才能在那個位置找到單字的定義;在Python中,也有一個類似的資料結構稱作字典,字典的鍵(key)就對應到我們要查詢的單字,字典的值(value)則是該單字的定義。
Thumbnail
當我們查字典時,會先找到想查詢的單字在字典裡的位置,才能在那個位置找到單字的定義;在Python中,也有一個類似的資料結構稱作字典,字典的鍵(key)就對應到我們要查詢的單字,字典的值(value)則是該單字的定義。
Thumbnail
當我們需要重複一系列有規則的行為,例如從1加到100,或是取得物件裡面的每一個元素,例如將串列裡面的每個元素印出,重複地撰寫程式碼顯然不切實際,for迴圈便是可以讓程式對可迭代物件(iterable object)執行迭代(iteration)的工具。
Thumbnail
當我們需要重複一系列有規則的行為,例如從1加到100,或是取得物件裡面的每一個元素,例如將串列裡面的每個元素印出,重複地撰寫程式碼顯然不切實際,for迴圈便是可以讓程式對可迭代物件(iterable object)執行迭代(iteration)的工具。
Thumbnail
前面提到變數為程式儲存資料的地方,一個變數可以儲存一個學生的成績、一個人的身高、或是一個人名等,但如果多人的資料要管理,為每個人設計一個變數顯然就有點不切實際,串列就是用來解決這樣的問題。
Thumbnail
前面提到變數為程式儲存資料的地方,一個變數可以儲存一個學生的成績、一個人的身高、或是一個人名等,但如果多人的資料要管理,為每個人設計一個變數顯然就有點不切實際,串列就是用來解決這樣的問題。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News