字典操作

Python SELF TW
等級 11 , 課堂 2
開放

2.1 獲取元素的數量

在 Python 中,要獲取字典中的元素數量,可以使用內建的 函數 len()。這個函數返回字典中的鍵值對數量。或者說,是鍵的數量。

函數使用範例:


person = {"name": "Alice", "age": 25, "city": "New York"}
num_elements = len(person)
print(num_elements)  # 輸出: 3 

在這個範例中,我們有一個包含三個元素的字典 person。函數 len(person) 返回字典中的元素數量,也就是 3。

檢查字典是否為空

你可以使用函數 len() 來檢查字典是否為空。這在條件和循環中非常有用。


empty_dict = {}
print(len(empty_dict))  # 輸出: 0

person = {"name": "Alice", "age": 25, "city": "New York"}

if len(person) > 0:
    print("字典不為空")
else:
    print("字典為空")

帶嵌套結構的字典

函數 len() 只考慮頂層鍵的數量,不管裡面的值是什麼。


complex_dict = {
    name: "Alice",
    details: {
        age: 25,
        city: "New York"
    },
    hobbies: ["reading", "traveling"]
}
print(len(complex_dict))  # 輸出: 3

在這個範例中,我們有一個帶有嵌套資料結構的字典。 len(complex_dict) 返回的數量是3,因為在頂層有三個鍵:"name"、 "details"和"hobbies"。

len() 忽略了在嵌套資料結構中的鍵, 像是 "age" 和 "city" 在字典 "details" 裡,因為 len() 只計算頂層鍵的數量。如果你需要計算所有元素的數量, 包括嵌套結構,就必須使用遞歸的方法。不過這點今天先不說。

2.2 判定類型

函數 type() 在 Python 中用來判定物件的類型。當處理字典時 type() 能辨識物件是 dict 類別的實例。這在不同情境下可能是有用的,像是做一些操作前檢查資料類型。

使用範例:

檢查物件類型


person = {"name": "Alice", "age": 25, "city": "New York"}
print(type(person))  # 輸出: <class 'dict'>

在這個範例中,我們建立了一個字典 person 並用 type 來判斷它的類型。函數返回 <class 'dict'>,指出 person 是一個字典。

條件檢查資料類型

函數 type() 可以用在條件表達式中檢查資料類型,這樣可以只對 dict 類型的物件進行特定操作。


data = {"name": "Alice", "age": 25, "city": "New York"}

if type(data) is dict:
    print("這是一個字典。")
else:
    print("這不是一個字典。")

在這個範例中,條件表達式檢查 data 是否為字典,並運行相應的代碼。

函數 type() 可以在自定義函數中用於檢查參數的類型, 以確保函數處理的是正確的資料類型。

範例:


def process_data(data):
    if type(data) is dict:
        print("處理字典...")
        # 對字典進行操作
    else:
        print("錯誤:預期為字典。")

data = {"name": "Alice", "age": 25, "city": "New York"}
process_data(data)

在這個範例中,函數 process_data 檢查參數 data 是否為字典,並只對字典進行相應操作。

2.3 獲取元素

操作字典的元素跟操作列表或元組類似,也是用方括號。只不過這次方括號裡面寫的是鍵而不是索引。字典的鍵可以是任何不改變的東西:字串、數字或比如說元組。


字典[]

範例:


person = {"name": "Alice", "age": 25, "city": "New York"}
name = person["name"]
print(name)  # 輸出: Alice

如果鍵不存在,就會出錯:


person = {"name": "Alice", "age": 25, "city": "New York"}
person["country"]  # 出錯 KeyError: 'country'

方法 get(key, def_value)

方法 get() 可以安全地通過鍵獲取值。如果鍵不存在,方法返回默認值(如果未指定默認值,則為 None)。這可以防止拋出 KeyError 異常。


person = {"name": "Alice", "age": 25, "city": "New York"}
age = person.get("age")
print(age)  # 輸出: 25

country = person.get("country", "USA")
print(country)  # 輸出: USA

方法 get() 的第二個參數可以指定在字典中沒有需要的鍵時返回的值。

方法 setdefault() 的操作類似於 get(),但是如果鍵不存在,這個方法不僅返回默認值,還會在字典中新增一個 鍵: 值 的組合。


person = {"name": "Alice", "age": 25}
city = person.setdefault("city", "New York")
print(city)  # 輸出: New York
print(person)  # 輸出: {'name': 'Alice', 'age': 25, 'city': 'New York'}
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION