# 字典是一種可變容器類型,可存儲任意類型對象
# 字典以鍵值對存儲數據,key-value形式,鍵值之間使用冒號:分隔,每個鍵值中間用逗號,分隔
# 字典包含在大括號,花括號{}中
# python中鍵必須是不可變的,但值可取任何數據類型
# 元組可以作為 dict 的 key,但列表不能作為元組的 key,dict 要求 key 必須是不可變類型,但列表是可變類型
dic = {"key1":"value1","key2":"value2"}
print(dic)
print(type(dic))
# 創建字典
# 創建一個空的字典
b = {}
print(b)
print(type(b))
# 直接賦值創建
a = {"name":"Tom","age":19,"area":"shanghai",123:456}
print(a)
print(type(a))
# 通過關鍵字dict和關鍵字參數創建
c = dict(aa="bb",bb="你好",cc="acc")
print(c)
# 通過關鍵字dict和二元組列表創建
list = [('name',"Tom"),('age',20),('area', "shanghai")]
d = dict(list)
print(d)
# 通過字典推導式創建
f = {i:2+i for i in range(1,5)}
print(f)
# 通過關鍵字dict和zip結合創建
e = dict(zip('ab', [1, 2]))
print(e)
# 通過dict.fromkeys()創建
# 這個通常用來初始化字典, 設置value的默認值
g = dict.fromkeys(range(5), 'v')
print(g)
# 字典中鍵一般是唯一的,如果重複最後的一個鍵值對會替換前面的,值不需要唯一
abc = {"ab":"11","ac":"22","ad":"33","ab":"55"}
print(abc)
print(type(abc))
# 字典的訪問
# 訪問字典中的數據:字典是鍵值對,訪問的時候根據key進行訪問操作
# a[key]
# a.get(key)
# 使用方括號訪問字典,key必須是存在,如果不存在,程序會報異常
print(a["name"])
# 使用get訪問,key不存在,會返回None,空的意思
print(a.get("age"))
print(a.get("abcd"))