1. 程式人生 > >python學習之數據類型—字典dict

python學習之數據類型—字典dict

str del 數據類型 col IT hash 直接 set 對象

字典: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