一:字典定義數據結構
Python內置了字典:dict的支持,dict全稱dictionary,在其餘語言中也稱爲map,字典是另 一種可變容器模型,且可存儲任意類型對象。具備極快的查找速度。spa
字典是一種經過名字或者關鍵字引用的得數據結構,其鍵能夠是數字、字符串、元組,這種結構類型也稱之爲映射。字典類型是Python中惟一內建的映射類型code
字典建立方式對象
方式一: my_dict = dict(name='小明',age=18,性別='男') #注意鍵都不要加引號 方式二: my_dict = {'name': '小明', 'age': 18, '性別': '男'} #注意字符串類型的鍵要加引號 方法三: my_dict = dict(((1,'小明'),('age',18)))
注意:
每一個鍵與值用冒號隔開(:),每對用逗號,每對用逗號分割,總體放在花括號中({})。
鍵必須獨一無二,但值則沒必要。
值能夠取任何數據類型,但必須是不可變的,如字符串,數或元組。blog
二:字典的用法字符串
1.字典查詢get
my_dict = {'name': '小明', 'age': 18, '性別': '男'} 查詢字典的鍵對應的值: 方法一:my_dict['name'] #若是鍵不存在報錯KeyError 方法二:my_dict.get('name') #若是鍵不存在返回None(也能夠自定義返回值) 查詢字典全部的鍵: 方法一:my_dict.keys() #返回dict_keys(['name', 'age', '性別']) 方法二:set(my_dict) #返回集合{'性別', 'age', 'name'} 查詢字典全部的值 my_dict.values() 查詢字典全部的項 my_dict.items()
2.字典的新增和修改it
my_dict = {'name': '小明', 'age': 18, '性別': '男'} my_dict['班級'] = '3班' #鍵不存在則新增鍵值 my_dict['age'] = 20 #鍵存在修改鍵對應的值
3.字典的刪除io
my_dict = {'name': '小明', 'age': 18, '性別': '男'} del my_dict['age'] #刪除鍵是age的項 my_dict.clear() #清空字典的內容 del my_dict #刪除字典
三:字典經常使用內置方法class
1.fromkeys() 建立一個新字典,fromkeys(*args, **kwargs) 以*args中元素作字典的鍵,**kwargs爲字典全部鍵對應的初始值
list_data = ['name', 'age', '性別'] d = dict.fromkeys(list_data) 結果:d爲{'name': None, 'age': None, '性別': None} list_data = ['name', 'age', '性別'] d = dict.fromkeys(list_data,'哈哈') 結果:d爲 {'name': '哈哈', 'age': '哈哈', '性別': '哈哈'}
2.pop()方法刪除指定的key,pop(self, k, d=None) 參數: k:待刪除的key d:若是待刪除的key,則返回None ,或指定什麼返回什麼
my_dict = {'name': '小明', 'age': 18, '性別': '男'} p = my_dict.pop('name') #若是鍵不存在時報錯 print(p) #小明 print(my_dict) #{'age': 18, '性別': '男'} p = my_dict.pop('年級','年級未知') print(p) #年級未知
3.popitem()方法,隨機刪除一個鍵值對
my_dict = {'name': '小明', 'age': 18, '性別': '男'} p = my_dict.popitem() print(p) #('性別', '男') print(my_dict) #{'name': '小明', 'age': 18}