字典Dict(無序集合)python
定義:一系列鍵值對元素組成的集合函數
使用 {} 來表示
spa
字典不關心鍵值對的排列順序,只關心鍵和值之間的關聯關係code
PS:在Python3.6中,重寫了字典,如今是有序的了對象
https://stackoverflow.com/questions/39980323/are-dictionaries-ordered-in-python-3-6blog
建立字典:ci
一、空字典: dict = {}字符串
二、帶數據的字典:dict = {key1 : value1, key2 : value2, ...}get
其中:key值具備惟一性,且不可變(可以使用 字符串string,數字int,元組tuple等)string
value值能夠是Python中的任何對象,好比(int, string, list, dict等)
字典操做:
一、訪問:
dict[key]
1 var = {'a': 'Alan', 'b': 'Brain', 'c': 'Callie', 'd': 'Danny'} 2 result = var['c'] 3 print(result) 4 --->Callie
二、刪除:
del dict/dict[key] 刪除字典或key對應的value
clear() 清空字典,獲得一個空字典
pop(key) 刪除字典中制定的元素
1 var = {'a': 'Alan', 'b': 'Brain', 'c': 'Callie', 'd': 'Danny'} 2 var.pop('a') 3 print(var) 4 --->{'b': 'Brain', 'c': 'Callie', 'd': 'Danny'}
popitem() 隨機返回並刪除字典中的一對鍵和值(通常刪除末尾對)
1 var = {'a': 'Alan', 'b': 'Brain', 'c': 'Callie', 'd': 'Danny'} 2 var.popitem() 3 print(var) 4 --->{'a': 'Alan', 'b': 'Brain', 'c': 'Callie'}
三、添加 & 修改:
dict[key] = value
1 var = {'a': 'Alan', 'b': 'Brain', 'c': 'Callie', 'd': 'Danny'} 2 var['a'] = 'Ab' 3 print(var) 4 --->{'a': 'Ab', 'b': 'Brain', 'c': 'Callie', 'd': 'Danny'} 5 6 var = {'a': 'Alan', 'b': 'Brain', 'c': 'Callie', 'd': 'Danny'} 7 var['e'] = 'Ed' 8 print(var) 9 --->{'a': 'Alan', 'b': 'Brain', 'c': 'Callie', 'd': 'Danny', 'e': 'Ed'}
字典方法:
一、len(dict)
二、max(dict) & min(dict) 最大值和最小值,返回結果是字典的key;
若是key不是數字類型,則根據Ascii值比較
三、和List,Tuple同樣,一樣具備推導式
字典的遍歷:
一、for key,value in dict.items() 遍歷字典的鍵和值
items()將字典轉換爲一個2級List容器,可是該List不是標準的列表類型
1 var = {'a': 'Alan', 'b': 'Brain', 'c': 'Callie', 'd': 'Danny'} 2 for key, value in var.items(): 3 print(key + '-' + value) 4 --->a-Alan 5 --->b-Brain 6 --->c-Callie 7 --->d-Danny
二、for key in dict.keys() 遍歷字典的鍵,
固然,不調用keys()方法,會默認遍歷全部的鍵
等價於 for key in dict
三、for key in dict.values() 遍歷字典的值
字典相關函數:
一、clear() 清空
二、copy() 複製
三、fromkeys(seq, value)
建立一個新字典,以列表元素爲鍵,value爲對應的初始值
1 num = [1, 2, 3, 4, 5] 2 var = dict.fromkeys(num, 'Hello') 3 print(var) 4 {1: 'Hello', 2: 'Hello', 3: 'Hello', 4: 'Hello', 5: 'Hello'}
四、get(key, default=None)
根據key獲得對應的值,若是key不在字典中,返回默認值
1 var = {'a': 'Alan', 'b': 'Brain', 'c': 'Callie', 'd': 'Danny'} 2 print(var.get('a')) 3 --->Alan 4 print(var.get('e', 'Rrror')) 5 --->Rrror
五、setdefault(key, default=None) 與get()相似;
若是字典中key值存在,則返回該key對應的value
若是key值不存在,則添加以key爲鍵,default爲值的鍵值對,並返回該鍵值對
1 var = {'a': 'Alan', 'b': 'Brain', 'c': 'Callie', 'd': 'Danny'} 2 new = var.setdefault('a', 'Wood') 3 new1 = var.setdefault('w', 'Wood') 4 print(new) 5 --->Alan 6 print(new1) 7 --->Wood
六、update() 更新修改dict中的元素
若是key值不存在,則會進行添加
dict.update(key = value)
or dict.update({key : value}) 通常習慣使用導入字典
1 var = {'a': 'Alan', 'b': 'Brain', 'c': 'Callie', 'd': 'Danny'} 2 var.update({'e': 'Elbert'}) 3 var.update({'a': 'Abc'}) 4 print(var) 5 --->{'a': 'Abc', 'b': 'Brain', 'c': 'Callie', 'd': 'Danny', 'e': 'Elbert'}
嵌套:
在開頭的建立描述中,字典的值能夠是List,Tuple甚至是Dict
1 city = {'河南': { 2 '二線': '鄭州', 3 '三線': ['洛陽', '南陽'], 4 '四線': ('開封', '許昌', '新鄉') 5 } 6 }