# Python3 字典
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
# 1.通路字典裡的值 ,字典中沒有key會報錯
print(dict['Alice']) # 2341
# 2.修改字典
print("修改之前:", dict['Beth'])
dict['Beth'] = '哈哈哈哈哈'
print("修改之後:", dict['Beth'])
# 3.删除字典元素
dict3 = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
del dict3['Name'] # 删除鍵 'Name'
print("dict3['Name']:", dict3) # -->{'Age': 7, 'Class': 'First'}
dict3.clear() # 清空字典
print("clear:", dict3) # --> {}
del dict3 # 删除字典
# print("del:", dict3) #報錯
# 4.字典鍵的特性
'''
字典值可以沒有限制地取任何python對象,既可以是标準的對象,也可以是使用者定義的,但鍵不行。
'''
# 1)不允許同一個鍵出現兩次。建立時如果同一個鍵被指派兩次,後一個值會被記住,如下執行個體:
dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
print("dict['Name']: ", dict['Name']) # -->Manni
# 2)鍵必須不可變,是以可以用數字,字元串或元組充當,是以用清單就不行
# 4.内置函數
dict4 = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print(len(dict)) # 計算字典元素個數,即鍵的總數。
print(str(dict)) # 輸出字典,以可列印的字元串表示。。
print(type(dict)) # 傳回輸入的變量類型 --><class 'dict'>
# 5.内置方法
dict5 = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
del dict5['Name'] # 删除鍵 'Name --> {'Age': 7, 'Class': 'First'}
print("del name", dict5)
dict5.clear() # 删除字典内所有元素
print(dict5)
dict52 = dict5.copy() # 傳回一個字典的淺複制
print("copy後:", dict52) # -->{}
dict5 = {'Name': 'Runoob1', 'Age': 71, 'Class': 'First1'}
print("被淺複制對象dict5改變後:", dict52) # 淺複制是指當對象的字段值被複制時,字段引用的對象不會被複制 --> {}
# radiansdict.fromkeys()
seq = ('name', 'age', 'sex')
dict53 = {'name': 'Runoob', 'age': 7, 'sex': 'First'}
# 建立一個新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對應的初始值
dict54 = dict53.fromkeys(seq) # 第一個參數是seq,第二個參數是指派
print("dict54:", dict54) # -->dict54: {'name': None, 'age': None, 'sex': None}
dict55 = dict53.fromkeys(seq, 10)
print("dict55:", dict55) # -->dict55: {'name': 10, 'age': 10, 'sex': 10}
# Python 字典 get() 函數傳回指定鍵的值,如果值不在字典中傳回預設值
# radiansdict.get(key, default=None)
dict56 = {'Name': 'Runoob', 'Age': 27}
print("Age 值為 : %s" % dict.get('Age')) # -->7
print("Sex 值為 : %s" % dict.get('Sex', "NA")) # -->NA
print("Sex 值為 : %s" % dict.get('Sex')) # -->None
# Python 字典 items() 方法以清單傳回可周遊的(鍵, 值) 元組數組。
dict57 = {'Name': 'Runoob', 'Age': 7}
print("Value : %s" % dict57.items()) # dict_items([('Name', 'Runoob'), ('Age', 7)])
# 周遊例子
for i, j in dict57.items():
print(i, ":\t", j)
# 将字典的 key 和 value 組成一個新的清單:
d = {1: "a", 2: "b", 3: "c"}
result = []
for k, v in d.items():
result.append(k)
result.append(v)
print(result) # [1, 'a', 2, 'b', 3, 'c']