引子python
已經學習了列表,如今有個需求——把公司每一個員工的姓名、年齡、職務、工資存到列表裏,你怎麼存?web
staff_list = [ ["Kwan",21,"CEO",1000000], ["小明",22,"人力",5000], ["LL",21,"財務",7000], # [xxx,xx,xx,xxx] # [xxx,xx,xx,xxx] # [xxx,xx,xx,xxx] ]
以上面的形式存,沒問題。不過你要查某一我的的工資的話,就得遍歷這個列表了。學習
for i in staff_list: if i[0] == '小明': # 查詢小明的信息 print(i) break
但假如公司有20000人,若是你要查詢的這我的正好在列表的最後一個,那就意味着這個for循環得20000人所有走一遍,才能找到。列表越大,查找速度就會越慢。code
此時,就須要用到Python語言中惟一得映射類型——字典(dict)。blog
定義語法:{key1:value1, key2:value2}
(以鍵值對得形式定義,用{}
括起來)get
一、鍵(key)與值(value)之間用冒號:
隔開。hash
二、鍵值對與鍵值對之間用,
隔開。it
示例:for循環
info = { 'name':'Kwan', 'age':'21', 'blog_site':'https://cnblogs.com/Kwan-C/' }
特性:class
# 第一種(最經常使用) info = {'name':'Kwan', 'age':21} # 第二種 info = dict(name='Kwan', age=21) # 第三種 info = dict({'name':'Kwan', 'age':21}) # 第四種 s = {}.fromkeys(['name', 'age'],1) # 這種定義的結果爲{'name': 1, 'age': 1}
info = { 'Kwan':[21, 'CEO', 1000000], '小明':[22, '人力', 5000], } # 新增LL 直接添加 info['LL'] = [21, '財務', 7000] # 或者使用setdefault info.setdefault('LL', [21, '財務', 7000])
info = { 'Kwan':[21, 'CEO', 1000000], '小明':[22, '人力', 5000], } info.pop('Kwan') # 用pop()方法,刪除指定的key info.popitem() # 用popitem()方法,隨機刪除一個key del info['小明'] # 用del,刪除指定的key info.clear() # 用clear()方法,清空該字典
info = { 'Kwan':[21, 'CEO', 1000000], '小明':[22, '人力', 5000], } info['Kwan'][1] = 'boss' # 直接找到指定元素從新賦值便可 info['KK'] = '新來的' # 'KK'這個鍵(key)不存在於info中,此時就是添加操做了 info2 = { 'PP':[24, '銷售', 6000], 'UU':[23, '宣傳', 5000], } info.update(info2) # 將字典info2的鍵值對添加到字典info中
info = { 'Kwan':[21, 'CEO', 1000000], '小明':[22, '人力', 5000], } a = info['Kwan'] # 返回字典中key爲'Kwan'對應的值,若key不存在,則報錯 b = info.get('小明', default = None) # 返回地點中key爲'小明'對應的值,若key不存在,則返回default的值(default默認值爲None) if 'Kwan' in info: # 用in方法,判斷key是否在字典中,存在則返回True,不然爲False print(info['Kwan']) c = info.keys() # 返回一個包含字典全部key的列表 d = info.values() # 返回一個包含字典全部value的列表 e = info.items() # 返回一個包含全部(key, value)元組的列表
info = { "name":"Kwan", "ahe":21, "website": "https://cnblogs.com/Kwan-C/" } # 第一種 for k in info.keys(): # 遍歷字典全部的key print(k, info[k]) # 第二種 for k, v in info.items(): # 遍歷字典全部的鍵值對 print(k, v) # 第三種 for k in info: # 同第一種 print(k, info[k])
info = { "name":"Kwan", "ahe":21, "website": "https://cnblogs.com/Kwan-C/" } print(len(info)) # 結果爲字典中key的數量,info中key的數量爲3