一、什麼是字典? 字典是Python語言中唯一的映射類型。 映射類型對象里哈希值(鍵,key)和指向的對象(值,value)是一對多的的關係,通常被認為是可變的哈希表。 字典對象是可變的,它是一個容器類型,能存儲任意個數的Python對象,其中也可包括其他容器類型。 字典類型與序列類型的區別: 1. ...
一、什麼是字典?
字典是Python語言中唯一的映射類型。
映射類型對象里哈希值(鍵,key)和指向的對象(值,value)是一對多的的關係,通常被認為是可變的哈希表。
字典對象是可變的,它是一個容器類型,能存儲任意個數的Python對象,其中也可包括其他容器類型。
字典類型與序列類型的區別:
1.存取和訪問數據的方式不同。
2.序列類型只用數字類型的鍵(從序列的開始按數值順序索引);
3.映射類型可以用其他對象類型作鍵(如:數字、字元串、元祖,一般用字元串作鍵),和序列類型的鍵不同,映射類型的鍵直4.接或間接地和存儲數據值相關聯。
5.映射類型中的數據是無序排列的。這和序列類型是不一樣的,序列類型是以數值序排列的。
6.映射類型用鍵直接“映射”到值。
字典是Python中最強大的數據類型之一。
二、字典的操作
# 字典的添加、刪除、修改操作
dict = {"a": "apple", "b": "banana", "c": "grape", "d": "orange"}
dict["a"] = "watermelon" # 修改key:"a"對應的value:”apple"改為“watermelon”
del (dict["a"]) # 萬能刪除操作
dict["c"] = "grapefruit" # 修改key對應value
print(dict.pop("b")) # 取出一個key:"b",並從dict中移除他
dict.clear() # 清除字典
# 字典的遍歷
dict1 = {"a": "apple", "b": "banana", "c": "grape", "d": "orange"}
for k in dict1:
print("dict[%s]=" % k, dict1[k])
# 字典items()的使用
dict2 = {"a": "apple", "b": "banana", "c": "grape", "d": "orange"}
print(dict2.items()) # 每個元素是一個key和value組成的元組,以列表的方式輸出
# 調用items()實現字典的遍歷
dict3 = {"a": "apple", "b": "banana", "c": "grape", "d": "orange"}
for (k, v) in dict3.items():
print("dict3[%s]=" % k, v)
# 使用列表、字典作為字典的值
dict4 = {"a": ("apple",), "bo": {"b": "banana", "o": "orange"}, "g": ["grape", "grapefruit"]}
print(dict4["a"])
print(dict4["a"][0])
print(dict4["bo"])
print(dict4["bo"]["o"])
print(dict4["g"])
print(dict4["g"][1])
dict5 = {"a" : "apple", "b" : "banana", "c" : "grape", "d" : "orange"}
# 輸出key的列表
print(dict5.keys())
# 輸出value的列表
print(dict5.values())
# 每個元素是一個key和value組成的元組,以列表的方式輸出
print(dict5.items())
# 字典中元素的獲取方法
dict6 = {"a": "apple", "b": "banana", "c": "grape", "d": "orange"}
print(dict6)
print(dict6.get("c", "apple"))
print(dict6.get("e", "apple"))
# get()的等價語句
D = {"key1": "value1", "key2": "value2"}
if "key1" in D:
print(D["key1"])
else:
print("None")
# 字典的更新
dict7 = {"a": "apple", "b": "banana"}
print(dict7)
dict13 = {"c": "grape", "d": "orange"}
dict7.update(dict13)
print(dict7)
# dpate()的等價語句
D = {"key1": "value1", "key2": "value2"}
E = {"key3": "value3", "key4": "value4"}
for k in E:
D[k] = E[k]
print(D)
# 字典E中含有字典D中的key
D = {"key1": "value1", "key2": "value2"}
E = {"key2": "value3", "key4": "value4"}
for k in E:
D[k] = E[k]
print(D)
# 設置預設值
dict7 = {}
dict7.setdefault("a")
print(dict7)
dict7["a"] = "apple"
dict7.setdefault("a", "default")
print(dict7)
# 調用sorted()排序
dict7 = {"a": "apple", "b": "grape", "c": "orange", "d": "banana"}
print(dict7)
# 按照key排序
print(sorted(dict7.items(), key=lambda d: d[0]))
# 按照value排序
print(sorted(dict7.items(), key=lambda d: d[1]))
# 字典的淺拷貝
dict7 = {"a": "apple", "b": "grape"}
dict10 = {"c": "orange", "d": "banana"}
dict11 = dict7.copy()
print(dict10)
# 字典的深拷貝
import copy
dict7 = {"a": "apple", "b": {"g": "grape", "o": "orange"}}
dict8 = copy.deepcopy(dict7)
dict9 = copy.copy(dict7)
dict8["b"]["g"] = "orange"
print(dict7)
dict9["b"]["g"] = "orange"
print(dict7)
三、使用字典的註意事項
1、不能允許一鍵對應多個值;
2、鍵必須是可哈希的。