[Python基礎]容器:字典{ dit }集合{set}

2024/01/13閱讀時間約 8 分鐘

在日常中我們都會將很多事物定上了一個標籤,例如將商品標記價格,替孩子取姓名,公司上冠上職稱等等。

在Python中也有這種方法,就是字典的形式{ 'name' : 'crab', 'apple', 1000 }去呈現,將需要的後再把輸入對應的鍵取出值來,像上方的形式,若要查詢key(蘋果)價格就會得到他的值(value)1000 。

以下圖舉例說明,將手機價格用Python字典的方式儲存。

依手機價格舉例字典用法

依手機價格舉例字典用法



宣告方法

字典&集合宣告

字典&集合宣告

詳細說明

字典(Dictionary):

1. 存儲方式:使用鍵-值(key-value)對的形式。

2. 順序:字典是無序的,即不保證項目的順序。

3. 鍵的唯一性:字典中的鍵是唯一的,每個鍵對應一個值。

4. 資料型別:可以存儲任何的資料型別作為鍵,例如字串、數字等。

5. 使用花括號{ }來創建。

集合(Set):

1. 存儲方式:使用花括號 `{}`。

2. 順序:集合是無序的,即不保證項目的順序。

3. 元素的唯一性:集合中的元素是唯一的,不允許重複。

4. 資料型別:可以存儲任何的資料型別。

5. 使用花括號 { }來創建。

程式範例

字典(Dictionary)的宣告:

# 空字典
empty_dict = {}

# 包含鍵值對的字典
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}

# 使用 dict() 建構子宣告字典
another_dict = dict(name='Jane', age=25, city='Los Angeles')

# 字典中包含不同類型的值
mixed_dict = {'name': 'Alice', 'age': 28, 'is_student': True, 'grades': [85, 92, 78]}

集合(Set)的宣告:

# 空集合
empty_set = set()

# 包含元素的集合
my_set = {1, 2, 3, 4, 5}

# 使用 set() 建構子宣告集合
another_set = set([3, 4, 5, 6, 7])

# 集合中的元素可以是不同類型的值
mixed_set = {1, 'hello', 3.14, True}

常用方法:

字典的常用方法:

keys() 返回字典所有的鍵。

my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
keys = my_dict.keys()
print(keys)
# dict_keys(['name', 'age', 'city'])

values(): 返回字典所有的值。

values = my_dict.values()
取出key與values

取出key與values

get(key, default) 獲取指定鍵的值,如果鍵不存在,返回指定的默認值。

指定存在的key : 'age',則回傳對應的值25,若指定不存在的'job'則回傳指定的默認值no job

get用法

get用法

pop(key, default) 刪除並返回指定鍵的值,如果鍵不存在,返回指定的默認值或引發 KeyError。

若在jon那段,未給默認值的參數,則就會引發KeyError

pop用法

pop用法

items() 將字典內的key與values,組成tuple情況,一組一組的。

這樣可以方便地獲取字典中的每一對key與values,來應用,依序取出作處理。

items用法

items用法

update(dict2) 將另一個字典的鍵值對更新到該字典中。

字典中的鍵是唯一的,若update已存在的key就會將值更新,像以下範例,city的值已更新為Los Angeles

updata用法

updata用法

集合的常用方法:

add(element) 向集合添加元素。

remove(element) 刪除集合中的指定元素,如果元素不存在,引發 KeyError。

discard(element) 刪除集合中的指定元素,如果元素不存在,不引發錯誤。

pop() 刪除並返回集合中的任意一個元素,如果集合為空,引發 KeyError。

union(set2)| 返回兩個集合的聯集。

intersection(set2)& 返回兩個集合的交集。

程式範例

以下結合添加,刪除的方法,測試各種方法出來的結果,可某些場合根據需求使用相對應的方法

my_set = {1, 2, 3}
my_set.add(4)
print(f'add my_set : {my_set}')
my_set.remove(2)
print(f'remove(2) my_set : {my_set}')
my_set.discard(5)
print(f'discard(5) my_set : {my_set} 刪除不存在值,但不會引發錯誤')
popped_element = my_set.pop()
print(f'pop my_set: {my_set} 隨機刪除')
程式輸出

程式輸出

以下使用聯集與交集方法,呈現

聯集 : 集合A和B所有的元素組成的集合就叫做A和B的聯集,形成一個新的集合

交集:A跟B同時都有的元素,形成一個新的集合

如以下範例 :

set1 與set2 聯集後形成新的set {1, 2, 3, 4, 5}

set1與set2 交集形成新的set{3}

set1 = {1, 2, 3}
set2 = {3, 4, 5}
#聯集
union_set = set1.union(set2)
print(f'union_set : {union_set}')
union_set_new = set1|set2
print(f'| : {union_set_new}')
#交集
intersection_set = set1.intersection(set2)
intersection_set_new = set1 & set2
print(f'intersection_set: {intersection_set}')
print(f' & : {intersection_set_new}')
集合與交集範例

集合與交集範例

Python 的字典和集合,可以在日常生活中應用於多種情境

聯絡人名單: 將聯絡人名稱和相應的聯絡方式

contacts = {'Alice': '555-1234', 'Bob': '555-5678', 'Charlie': '555-9876'}

行事曆事件: 將日期作為鍵,事件內容作為值。

calendar = {'2022-01-15': '朋友聚會', '2022-01-20': '工作會議'}

活動參與者集合: 紀錄參與活動的人員,確保每個參與者只計算一次。

event_participants = {'Alice', 'Bob', 'Eve', 'David', 'Charlie'}


程式語言一些語法或方法的存在,目的就是為了解決日常的難題所存在的,使用對的方法或語法將會事半功倍


喜歡的話,愛心追蹤 謝謝大家

49會員
88內容數
Python程式設計師,不是在學習就是在學習的路上
留言0
查看全部
發表第一個留言支持創作者!