映射類型:字典python
字典是無序的,映射類型對象裏哈希值和被指向的對象是一對多的關係,字典中的鍵必須是可哈希的,全部不可變的類型都是可哈希的,另外針對數字鍵來講,值相等的兩個數字是相同的鍵,例如1和1.0;說到不可變類型你可能會想到元組,元組做爲字典的鍵是須要注意的地方就是元組中只包括想數字和祖父傳這樣的不可變參數,才能夠做爲字典中有效的鍵ssh
建立一個字典有如下幾種方法。spa
1.dict1 = {}orm
2.dict2 = dict()對象
3.dict3 = dict((['x',1],['y',2]))blog
4.dict4 = {}.fromkeys(('x','y'),-1) # -1爲vaules,也能夠不填參數,默認爲Noneip
>>>{'y':-1,'x':2}get
5.dict5 = dict(zip(('x','y'),(1,2))hash
6.dict6 = dict([('xy'[i-1],i) for i in range(1,3)])it
國際慣例dir(dict)
['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
1.clear 清除字典
2.copy 拷貝,淺拷貝
3.fromkeys 建立並返回一個新字典
dic = dict.fromkeys(('x','y'),1) # 參數seq爲鍵,val參數若沒有指定那就是默認值爲None print(dic) >>> {'x': 1, 'y': 1}
4.get 對字典中的鍵key,返回他對應的value,若是不存在,則返回defualt的值,默認是None
dic = {'k1':1,'k2':2} v = dic.get('k3','sb') print(v) >>>sb
5.items 返回一個包含字典中鍵,值對元祖的列表
dic = {'k1':1,'k2':2} v = dic.items() print(v) >>>dict_items([('k2', 2), ('k1', 1)]) # 是一個列表
6.keys 返回一個包含字典中鍵的列表
dic = {'k1':1,'k2':2} v = dic.keys() print(v) >>>dict_keys(['k1', 'k2'])
7.pop(key[,default]) 若是字典中key鍵存在,刪除並返回dict[key],若是不存在,且沒有給出default的值,則報keyerror
dic = {'k1':1,'k2':2} v = dic.pop('k1','sb') # default = 'sb' print(v) >>> 1
8.popitem 以元祖的形式返回並刪除第一個鍵值對
dic = {'k1':1,'k2':2} print(dic) v = dic.popitem() # 由於字典是無序的,因此每次的執行結果均可能不同 print(v) >>>{'k2': 2, 'k1': 1} ('k2', 2) dic = {'k1':1,'k2':2} print(dic) v = dic.popitem() print(v) >>>{'k1': 1, 'k2': 2} ('k1', 1)
9.setdefault(key,default = None) 若是字典中不存在key鍵,由dict[key] = default 爲它賦值
dic = {'k1':1,'k2':2} v = dic.setdefault('k3','sb') print(v) >>> sb print(dic) >>>{'k1': 1, 'k2': 2, 'k3': 'sb'} vv = dic.setdefault('k2','sb') print(vv) >>> 2 print(dic)
>>>{'k1': 1, 'k2': 2}
10.update(dict2) 將字典dict2的鍵值對添加到字典中
dic1 = {'k1':1,'k2':2}
dic2 = {'k3':3} dic2.update(dic1) # tips: 字典中原有的鍵若是與新添加的鍵重複,那麼重複鍵對應的原有條目的值將被新鍵所對應的值所覆蓋
print(dic2) >>>{'k2': 2, 'k3': 3, 'k1': 1}
11.values 返回一個包含字典中全部值的列表
dic1 = {'k1':1,'k2':2} v = dic1.values() print(v)>>>dict_values([2, 1])