字典概念
字典是另一種可變容器模型,且可存儲任意類型對象。
字典的每個鍵值對key:value 用冒號 : 分割,每個鍵值對之間用逗號 , 分割,整個字典包括在花括號 {} 中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
特點:鍵一般是唯一的,如果重復最后的一個鍵值對會替換前面的,值不需要唯一。值可以取任何數(shù)據(jù)類型,但鍵必須是不可變的,如字符串,數(shù)字或元組。
字典創(chuàng)建
cars = {} # 空字典
cars = dict() # 空字典
cars = {"num1":"京A0988","num2":"京B3467","num3":"京F8212"} # 非空字典
scores = {"mix":[99, 87, 60, "0分", 0.99, True] }# 字典可以存放混合類型
字典的訪問
# 方法1.字典 使用 key 鍵 去訪問 對應的value值
# 格式 dict[key] 若沒有key 則報錯
cars["num1"] > "京A0988"
# 方法2. dict.get(key) # 若key 不存在不報錯
cars.get("num4", "不存在') > # 不存在 返回 默認值
字典內置函數(shù)
cars = {"num1":"京A0988","num2":"京B3467","num3":"京F8212"}
1.增與改
# 增加與刪除的方法一樣都是一種格式,沒有函數(shù),若不存在key則增加,若存在,則修改。
>>cars["num4"] = "京A1234" # 在字典增加一對key-value
res: cars = {"num1":"京A0988","num2":"京B3467","num3":"京F8212","num4":""京A1234""}
2.刪
>>pop(key) # 根據(jù)key刪除鍵值對 并返回 value值
cars.pop("京B3467")
>>popitem() # 不用傳參,隨機刪除一組鍵值對,并返回刪除的鍵值對(元組形式返回),若為空字典,則刪除報錯
cars.popitem()
>>clear() # 清空內容,不回收地址,空字典。
cars.clear()
res:{}
>>del dict[key] # 根據(jù)key 刪除鍵值對 與 pop 類似
del cars["num1"]
>>del dict # 清空內容 回收內存 刪除cars
del cars
5.使用迭代對象快速構建字典
>>dict.fromkeys() # 對可迭代對象,進行 字典構建 值 默認None
dict.fromkeys(["1", "2"], 100)
res: {"1": 100, "2":100}
6.取值
>>cars.keys() # 返回 字典的所有key
>>cars.values() # 返回字典的所有value
>>cars.items() # 以元組方式 返回 每個鍵值對。
for key, value in cars.items():#常用方法對字典進行遍歷
print(key, value)
8.計數(shù)
>>cars.count("京A0988")
返回列表中"京A0988"元素的個數(shù)
字典支持的符號
key in dict 判斷key是否在字典中
is 判斷兩個字典是否id相等
類型轉換
1.列表轉字典
list1 = [("a", 100), ("b", 20), ("c", 80)]
>>dict(list1) # 只有符合這樣格式的列表才能轉為字典
2.字典轉列表
>>list(dict1) # 只是將keys 放到列表中