字典類型(dict)的使用
在字典中要注意:字典無序,用於存儲詳細信息。字典是可變數據類型
字典的鍵 "key" 是唯一的,並且是不可變的數據類型,但值 "value" 可以是各種的數據類型,比如是字典、列表。
字典是Python中,唯一具有映射關系的數據類型:可一一對應,也可一對多。
字典的查詢速度高於列表,字典的存儲空間會很大。
字典的格式:{ " key " : " value " } key是鍵,value是值。通過key獲取value。多個key value用 " , " 隔開。
字典的常用操作有:取值、修改、添加(插入)、查看、循環、更新。
取值:dict_name [ X ],X是key的值。通過知道key,取value值。
name_dict={ 1:{"name":"george","age":28}, 2:{"name":"wang","age":20}, 3:{"name":{"name":"tom","age":18}},
4:["rain"], "name":"python", } print(name_dict[1]) print(name_dict[2]["name"]) print(name_dict[3]["name"]["age"]) print(name_dict[4]) print(name_dict["name"])
修改:對字典里的某個值進行數據修改。
name_dict={ 1:{"name":"george","age":28}, 2:{"name":"wang","age":20}, 3:{"name":{"name":"tom","age":18}}, 4:["rain","123455677"], "name":"python", } print(name_dict) name_dict[1]["name"] = "George" name_dict[2]["age"] = 19 name_dict[3]["name"]["name"] = "TOM" name_dict[3]["name"]["age"] = 180 name_dict[4][0] = "green" name_dict[4][1] = "180-180-180" name_dict["name"] = "Python 3.6" print(name_dict)
添加:對value的值是列表類型的,進行append添加操作。
name_dict={ 1:{"name":"george","age":28}, 2:{"name":"wang","age":20}, 3:{"name":{"name":"tom","age":18}}, 4:["rain","123455677"], "name":"python", } name_dict[4].append("添加") print(name_dict)
插入:給字典插入新的key和value數據。
name_dict={ 1:{"name":"george","age":28}, 2:{"name":"wang","age":20}, 3:{"name":{"name":"tom","age":18}}, 4:["rain","123455677"], "name":"python", } #插入的是key和value name_dict[5] = "make" name_dict["BMW"] = "X7" print(name_dict)
刪除:pop()方法,刪除指定的key,會返回刪除的結果。如果pop刪除的key不存在,那就附一個默認的值。
name_dict={ 1:{"name":"george","age":28}, 2:{"name":"wang","age":20}, 3:{"name":{"name":"tom","age":18}}, 4:["rain","123455677"], "name":"python", } print(name_dict.pop(1)) print(name_dict.pop(10,None))
popitem()方法:是可以隨機刪除一個值,因為字典是無序的。不用填寫參數,隨機刪除。
name_dict={ 1:{"name":"george","age":28}, 2:{"name":"wang","age":20}, 3:{"name":{"name":"tom","age":18}}, 4:["rain","123455677"], "name":"python", } print(name_dict.popitem())
del方法刪除:
name_dict={ 1:{"name":"george","age":28}, 2:{"name":"wang","age":20}, 3:{"name":{"name":"tom","age":18}}, 4:["rain","123455677"], "name":"python", } del name_dict[2] del name_dict["name"] print(name_dict)
查看:查看字典的某個值。 還可以判斷要查詢的key,是否在字典中。
name_dict={ 1:{"name":"george","age":28}, 2:{"name":"wang","age":20}, 3:{"name":{"name":"tom","age":18}}, 4:["rain","123455677"], "name":"python", } print(name_dict) # 查看字典全部的值 print(name_dict[1]) # 查看字典指定的值,直接輸key print(name_dict[1]["age"]) # 查看字典指定的值,直接輸key print(name_dict["name"]) # 查看字典指定的值,直接輸key print(name_dict.get(10)) # 當查看字典的一個值,如果不存在會報錯,為避免報錯。用get方法,如值不存在會返回None print(name_dict.get(2)) # 當查看字典的一個值,如果不存在會報錯,為避免報錯。用get方法,如值不存在會返回None print(name_dict.get(2)["name"]) # 當查看字典的一個值,如果不存在會報錯,為避免報錯。用get方法,如值不存在會返回None
判斷是否在字典中。返回布爾值(bool),存在是True,不存在是False。
name_dict={ 1:{"name":"george","age":28}, 2:{"name":"wang","age":20}, "name":"python", } print(111 in name_dict) #存在key是True,不在是False
循環:循環字典的方法
print("------- loop -------") name_dict={ 1:{"name":"george","age":28}, 2:{"name":"wang","age":20}, 3:{"name":{"name":"tom","age":18}}, 4:["rain","123455677"], "name":"python", } #這樣只會打印key for i in name_dict: print(i) #同時打印key和value (推薦用法) for i in name_dict: print(i,name_dict[i]) #低效率的循環取key and value for k,v in name_dict.items(): print(k,v) #循環key print(name_dict.keys()) #循環value print(name_dict.values())
更新:update()方法。相當於合並,但是當update里的參數於前面的字典有相同的key,那么后者覆蓋前者。
#######更新 update(),相當於是將兩個字段合並 name_dict1={ 1:{"name":"george","age":28}, 3:{"name":{"name":"tom","age":18}}, "name":"python", } name_dict2={ 2:{"name":"wang","age":20}, 4:["rain","123455677"], "age":"28", "name":"10", } #當update()參數里的字典有key和update前的字典key有重合,那么將update的key覆蓋前面的。 #name_dict2的name 覆蓋name_dict1的name name_dict1.update(name_dict2) print(name_dict1)
formkeys( )方法:返回一個新的字典
info = {} info1= info.fromkeys([1,2,3],{}) info2= info.fromkeys([1,2,3],"Test") print(info1) print(info2)
------ END ------