1.1 字典是無序的對象的集合,經過鍵來存取,字典的鍵只能是不可變類型。python
1.3 字典的長度可變,異構,任意嵌套。spa
1.2 python中不可變數據類型包括:數值類型,字符串和元組。code
2.1若是你能夠事先能夠拼出整個字典:對象
1 dic = {'name': 'Bob', 'age': 40}
2.2 若是你須要動態的一次建立字典的一個字段:blog
1 dic = {} 2 dic['name'] = 'Bob' 3 dic['age'] = 20
2.3 若是你想書寫簡單,並且字典的鍵是字符串:排序
1 dic = dict(name='Bob', age=18) 2 print(dic)
2.4 若是你須要在程序運行時經過序列構建字典:字符串
1 dic = dict([('name', 'Bob'), ('age', 18)]) 2 print(dic)
3.1 字典的基本操做之增get
1 # 經過動態的賦值來爲字典增長鍵值對 2 dic = {} 3 dic['name'] = 'Bob' 4 dic['age'] = 60 5 print(dic) # {'name': 'Bob', 'age': 60} 6 7 # 經過setdefault方法增長鍵值對 8 a = dic.setdefault('name', 'alex') # 當原字典中有'name',則不去修改,不然增長 9 b = dic.setdefault('age', 22) # 同上 10 c = dic.setdefault('sex', '男') # 同上 11 print(a, b, c) # Bob 60 男 12 print(dic) # {'name': 'Bob', 'age': 60, 'sex': '男'}
3.2 字典的基本操做之查it
1 # 經過鍵來查看值 2 print(dic['name']) # Bob 3 print(dic['age']) # 60 4 print(dic['sex']) # 男 5 6 # 經過方法keys(),values(),items() 7 print(dic.keys()) # dict_keys(['name', 'age', 'sex']) 8 print(dic.values()) # dict_values(['Bob', 60, '男']) 9 print(dic.items()) # dict_items([('name', 'Bob'), ('age', 60), ('sex', '男')])
3.3 字典的基本操做之改class
1 dic = {'name': 'Bob', 'age': 60, 'sex': '男'} 2 # 經過賦值方式來修改 3 dic['name'] = 'alex' 4 print(dic) # {'name': 'alex', 'age': 60, 'sex': '男'} 5 6 # 經過方法update()來修改 7 dic2 = {'sex': '女', 'hobby': 'learn', 'country': 'China'} 8 dic.update(dic2) # 原來不存在的鍵值對追加,存在的鍵修改其值 9 print(dic) # {'name': 'alex', 'age': 60, 'sex': '女', 'hobby': 'learn', 'country': 'China'}
3.3 字典的基本操做之刪
1 dic = {'name': 'Bob', 'age': 60, 'sex': '男'} 2 # 經過del刪除字典中的元素或整個字典 3 del dic['name'] 4 print(dic) # {'age': 60, 'sex': '男'} 5 del dic 6 # print(dic) # NameError: name 'dic' is not defined 7 8 dic = {'name': 'Bob', 'age': 60, 'sex': '男'} 9 # 經過pop()方法 10 name = dic.pop('name') 11 print(name) # Bob 12 print(dic) # {'age': 60, 'sex': '男'}
4.1 fromkeys()
1 dic = dict.fromkeys(['key1', 'key2', 'key3'], 'values') 2 # 相似將字典中的鍵初始化爲一個默認的值 3 print(dic) # {'key1': 'values', 'key2': 'values', 'key3': 'values'} 4 dic2 = dic.fromkeys(['key1', 'key2', 'key3'], ['values1', 'values2']) 5 print(dic2) # {'key1': ['values1', 'values2'], 'key2': ['values1', 'values2'], 'key3': ['values1', 'values2']} 6 dic2['key1'][0] = 'values3' # fromkeys()建立的字典,修改字典中的一個嵌套列表中的值,多有的鍵值都修改 7 print(dic2) # {'key1': ['values3', 'values2'], 'key2': ['values3', 'values2'], 'key3': ['values3', 'values2']}
4.2 get()
1 dic = {'name': 'Bob', 'age': 60, 'sex': '男'} 2 print(dic.get('name')) # Bob 3 print(dic.get('hobby')) # None 能夠判斷字典中是否有此鍵 4 print(dic.get('hobby', 'basketball')) # basketball
4.3 copy()
注:只是淺拷貝,只對頂層的拷貝
1 dic = {'name': 'Bob', 'age': 60, 'sex': '男', 'hobby': ['read', 'basketball']} 2 dic2 = dic.copy() # {'name': 'Bob', 'age': 60, 'sex': '男', 'hobby': ['read', 'basketball']} 3 print(dic2) 4 dic['hobby'][0] = 'write' 5 print(dic2) # {'name': 'Bob', 'age': 60, 'sex': '男', 'hobby': ['write', 'basketball']}
採用sorted()
1 dic = {'b': 'b', 'a': 'a', 'c': 'c'} 2 print(dic) 3 for key in sorted(dic): 4 print(key, dic[key])
6 字典的遍歷
1 dic = {'name': 'Bob', 'age': 60, 'sex': '男'} 2 for key in dic: 3 print(key, dic[key]) 4 5 for item in dic.items(): 6 print(item) 7 8 for i, v in dic.items(): 9 print(i, v)