1. 程式人生 > >python資料型別之字典(dict)和其常用方法

python資料型別之字典(dict)和其常用方法

字典的特徵:

key-value結構
key必須可hash,且必須為不可變資料型別、必須唯一。 # hash值都是數字,可以用類似於2分法(但比2分法厲害的多的方法)找。
可存放任意多個值、可修改、可以不唯一
無序
查詢速度快

常用方法:

info = {'stu01': 'alex', 'stu02': 'jack', 'stu03': 'jucy'}
# 關鍵字:info.keys(),值:info.values()
print('stu01' in info)  # True
print(info['stu01'])  # alex 沒有會報錯
print(info.get('stu01'))  #
alex 沒有不會報錯,而是返回None,一般用這個 print(info.pop('stu03')) # jucy 刪除,返回刪除的值 # info.popitem() 隨機刪 # del info['stu01'] 刪除方法,全域性刪除 # copy和list的一模一樣 # 可多巢狀 print(info.items()) # 把字典轉成列表。dict_items([('stu01', 'alex'), ('stu02', 'jack')]) info2 = {1: 2, 'stu02': [22, 1893113111, '']} info.update(info2) # 更新和list的extends類似,有對應的值就覆蓋,沒有對應的值就建立。
print(info) # {'stu01': 'alex', 'stu02': [22, 1893113111, '男'], 1: 2} info.setdefault(2, 'a') # 如果有2這個值就什麼都不做,如果沒有就把2的值寫成'a' print(info) # {'stu01': 'alex', 'stu02': [22, 1893113111, '男'], 1: 2, 2: 'a'} seq = ('Google', 'Runoob', 'Taobao') dict = dict.fromkeys(seq) print("新字典為 : %s" % str(dict)) #
字典為 : {'Google': None, 'Runoob': None, 'Taobao': None} dict = dict.fromkeys(seq, 10) print("新字典為 : %s" % str(dict)) # 新字典為 : {'Google': 10, 'Runoob': 10, 'Taobao': 10} # 打印出key和value for k in info: print(k, info[k]) # 下面這個方法不建議用,低效,需要把字典轉換成列表,而字典的查詢速度特別快 for k, v in info.items(): print(k, v)