字典能夠用下面方式建立:html
phoneBook = {"Bill":"1234", "Mike":"4321"}
字典中,鍵是惟一的。若是鍵不惟一,那麼程序也不會拋出異常,只是相同的鍵值會被最後一個覆蓋:python
phoneBook = {"Bill":"1234", "Mike":"4321", "Bill":"5678"} # 若是經過 Bill 定位,那麼查到的值是 "5678"
能夠用
dick
函數,經過其餘映射或鍵值對的序列創建字典。函數
items = [["Bill","1234"], ("Mike","4321")] d1 = dict(items) d2 = dict(name = 'Bill', number = '5678', age = 45) print(d1) # {'Bill': '1234', 'Mike': '4321'} print(d2) # {'name': 'Bill', 'number': '5678', 'age': 45}
len(dict)
:返回字典dict中元素的數量dict[key]
:返回關聯到key上的值dict[key] = value
:爲key賦值del dict[key]
:刪除鍵爲key的項key in dict
:檢查dict中是否包含有鍵爲key的項dic = {'title':'MyTitle', 'url':'http://www.aaa.com', 'company':'Zerobit'} str = """ <html> <head> <title>{title}</title> <head> <body> <h1>{title}</h1> <a href="{url}">{company}</a> </body> </html> """ print(str.format_map(dic))
dic = {'x':1, 'y':2, 'z':3} # 輸出 x y z for key in dic: print(key, end=' ')
dic = {'x':1, 'y':2, 'z':3} for key,value in dic.items(): print(key, value)
dic = {'x':1, 'y':2, 'z':3} dic.clear()
dic = {'x':1, 'y':2, 'z':3} newDic = dic.copy()
copy方法只是淺複製,只複製 第1層 的字典數據。至於第2層及如下的全部層,原字典和新字典都指向同一個值,無論是修改原字典的這些元素,仍是新字典中的這些元素,原字典和新字典中的這些元素都會同時改變。url
copy
模塊中的 deepcopy
函數進行深層複製from copy import deepcopy dic = {'x':1, 'y':2, 'z':3} newDic = deepcopy(dic)
# 在一個空字典上調用fromkeys方法建立一個新字典,經過列表指定key newDic1 = {}.fromkeys(['name', 'company', 'salary']) print(newDic1) # {'name': None, 'company': None, 'salary': None} newDic2 = {}.fromkeys(['name', 'company', 'salary'], 100) print(newDic2) # {'name': 100, 'company': 100, 'salary': 100}
使用dict[key]的形式從字典獲取value時,若是key不存在,則會拋KeyError異常code
get()
方法dic = {'x':1, 'y':2, 'z':3} print(dic.get('a')) # None
對於字典來講,裏面的元素並無順序,因此這裏所說的最後一個 key-value 對,是指最後一個添加的 key-value 對。orm
dic = {'c':10, 'a':40, 'b':12, 'x':44} dic['z'] = 3 print(dic.pop('b')) # 12 print(dic.popitem()) # ('z', 3) print(dic) # {'c': 10, 'a': 40, 'x': 44}
key
,第2個參數表示默認值。若是key不存在,則會向字典中添加這個key和默認值dic = {} dic.setdefault("name","alex") print(dic) # {'name': 'alex'}
dic1 = {'c':10, 'a':40, 'b':12, 'x':44} dic2 = {'name': 'Bill', 'number': '5678', 'x': 150} dic1.update(dic2) print(dic1) # {'c': 10, 'a': 40, 'b': 12, 'x': 150, 'name': 'Bill', 'number': '5678'}
若是dict2中的 key-value 對在dict1中不存在,那麼會在dict1中添加一個新的 key-value 對。若是dict1已經存在這個key,那麼會用dict2中key對應的值更新dict1中key的值。htm
dic = {'c':10, 'a':40, 'b':12, 'x':44} for val in dic.values(): print(val, end=' ') # 10 40 12 44