型態 | 描述 |
---|---|
dict | 由 key:value 配對的複合資料型態 |
建立字典變數可利用大括弧,裡頭以 key:value 為配對的資料項目,每一筆資料再以逗號區隔開,例如
d1 = {1:"a", 2:"b"}
上述字典型態的變數 d1 有兩筆資料,第一筆資料的 key 為 1 , value 為 "a" ,第二筆資料的 key 為 2 , value 為 "b" 。使用字典須注意, key 必須是不可變的 (immutable) 資料型態,如數字、字串 (string) 等, value 沒有限制,因此有需要的話,使用串列 (list) 或字典皆可。
也可以利用字典型態的建構子 (constructor) 建立物件,如下
d2 = dict(1="a", 2="b") d3 = dict({1:"a", 2:"b"}) d4 = dict(zip((1, 2), ("a", "a"))) d5 = dict([[2, "b"], [1, "a"]])
以上 d2 、 d3 、 d4 、 d5 所得到的字典物件,全都會與 d1 相同。
字典物件可進行以下的運算
計算 | 描述 |
---|---|
d[key] | 從 d 中取得 key 的 value |
d[key] = value | 將 d 的 key 指定為 value |
del d[key] | 刪除 d 中 key 所指定的 value |
key in d | 判斷 key 是否在 d 中 |
key not in d | 判斷 key 是否不在 d 中 |
iter(d) | 回傳由 d 的 key 建立的迭代器 |
len(d) | 回傳 d 的配對資料個數 |
字典物件有以下的方法 (method)
方法 | 描述 |
---|---|
dict.clear() | 清空 dict 的所有配對資料 |
dict.copy() | 回傳 dict 的拷貝 |
classmethod dict.fromkeys(seq[, value]) | 由 seq 中的元素構成 key ,每個 key 都給相同的 value 值 |
dict.get(key[, default]) | 從 dict 中取得 key 的 value ,若無此 key 則回傳 default , default 預設為 None |
dict.items() | 回傳 dict_items 物件,使 key:value 儲存為序對,然後依序儲存在 dict_items 物件中 |
dict.keys() | 回傳 dict_items 物件,使 key 依序儲存在 dict_items 物件中 |
dict.pop(key[, default]) | 將 key 的 value 從 dict 移除,若無此 kay ,回傳 default |
dict.popitem() | 從 dict 移除任意一組 key:value |
dict.setdefault(key[, default]) | 如果 key 在 dict 中,回傳 value 值,反之,將 key:default 加入 dict 之中 |
dict.update([other]) | 將 dict 以 other 更新 |
dict.values() | 回傳 dict_items 物件,使 value 依序儲存在 dict_items 物件中 |
舉例示範如下
d = {1:"a", 2:"b", 3:"c"} print(d) print(type(d)) print() print(d[2]) d[4] = "d" print(d) del d[2] print(d) print(3 in d) print(3 not in d) for i in iter(d): print(i, end=" ") print() print(len(d)) print() # 《程式語言教學誌》的範例程式 # http://pydoing.blogspot.com/ # 檔名:dicttype.py # 功能:示範 Python 程式 # 作者:張凱慶 # 時間:西元 2010 年 12 月
執行結果如下
中英文術語對照 | |
---|---|
字典型態 | dictionary type |
複合資料型態 | compound data type |
不可變的 | immutable |
字串 | string |
串列 | list |
建構子 | constructor |
方法 | method |
1 則留言:
請問
d4 = dict(zip((1, 2), ("a", "a")))
若要和d1相同,是否該改成
d4 = dict(zip((1, 2), ("a", "b")))
張貼留言