python學習之數據類型—字典dict
字典:dict
1、字典是python中唯一的一個映射類型,以{}括起來的價值對組成;
2、字典中key是唯一的,在保存的時候,根據key來計算出一個內存地址,如何將value放在這個內存中,這種稱為hash算法;
3、字典中的key必須是可hash的即(不可變的數據類型str,int,tuple,bool)
4、字典中的value可以存任意數據類型
5、字典也是無序的,故沒有通過索引找值一說,只能通過key找value
語法:
dict = {key:value,……}
增:
1、直接添加
dic ["BeiJing"] = "政治中心"
註:如果字典中無”BeiJing“這個key,則新增,如有則改變對應的value值為新值
2、setdefault(key,value)方法添加,value可不寫,默認為none
dic .setdefault("china") ---> {"china":None}
dic .setdefault("china","中國") --->{"china":None},一旦通過setdefault方法添加了key,之後就無法改變改key對應的值
刪:
1、指定key值來刪除
ret = dict.pop(key) 有返回值,返回的是刪除的值,同list 一樣,str與tuple是不可變數據類型故無pop方法
del dict 刪除字典對象
del dict[key] 按key來刪除,無返回值,為None
2、隨機刪除dict.popitem()
ret = dict.popitem() #隨機刪除字典中的元素,返回一個包含鍵值對的tuple (key,value)
解構:
k,v = dict.popitem()
print(k,v)
3、清空字典
dict.clear()
改:
1、直接通過key賦予新值
dict[key] = new_value
2、兩個字典合並成一個 dict_to.update(dict_from)
dict3 = {"name": "sun", "age": 30}
dict4 = {"name": "xiu", "age": 30, "hobby": "play_tv"}
dict3.update(dict4) # 將dict4更新到dict3中,如果dict3中key存在,對應value值將覆蓋,如果不存在,則新增
查:
1、通過key查value
dict[key] 如key不存在,則報錯
dict.get(key,自定義返回值) 如key不存在,默認返回None,也可自定義
2、查詢字典中所有的keys dict_keys([‘name‘, ‘age‘, ‘hobby‘])
for i in dict.keys:
print(i)
3、查詢字典中所有的values dict_values([‘xiu‘, 30, ‘play_tv‘])
for i in dict.values:
print(i)
4、查詢字典中所有的元素items dict_items([(‘name‘, ‘xiu‘), (‘age‘, 30), (‘hobby‘, ‘play_tv‘)])
for i in dict.items:
print(i) #i 是一個元組
python學習之數據類型—字典dict