字典(Dictionary)操作詳解
字典為鍵值的形式,一個鍵對應一個值
Python字典是另一種可變容器模型,且可存儲任意類型對象,如字符串、數字、元組等其他容器模型。
一、創建字典
字典由鍵和對應值成對組成。字典也被稱作關聯數組或哈希表。基本語法如下:
1 dict = {'name': 'sunzhicheng', 'age': '20', 'sex': 'boy'}
不可變類型:整型,字符串,元組 :字典只能用不可變類型來創建
可變類型:列表,字典
字典兩大特點:
1.鍵唯一
2.無序
列表的兩種創建方法:
1.第一種正常創建:
dic = {'name':'sunzhicheng','age':20,'sex':'boy','admin':30} print(dic)
2.第二種通過函數創建:每個鍵值對都用一個括號表示,多個鍵值對之間用逗號,表示,鍵值對之間也是用逗號,表示的
dic1 = dict((('name','sunzhicheng'),('age',20),('sex','boy'),('admin',20))) print(dic1)
字典的操作:
1.增:通過變量直接增加鍵值,通過dic增加了兩個鍵值對:'age'= 18,'sex' = 'boy'
dic = {'name':'sunzhicheng'} dic['age'] = 18 dic['sex'] = 'boy' print(dic)
1.1增 setdefault方法:如果鍵存在不進行修改,如果鍵不存在,進行增加該條鍵值對
dic = {'name':'sunzhicheng'} dic['age'] = 18 dic['sex'] = 'boy' print(dic) #鍵存在,不進行修改,並返回字典中的鍵對應的值。 ret = dic.setdefault('age',30) print(dic) print(ret) # 鍵不存在,在字典中增加新的鍵值對,並返回鍵的值 ret1 = dic.setdefault('book',30) print(dic) print(ret1)
執行結果:

2.查:通過字典的鍵去查詢要查詢的內容
ic2 = {'name':'sunzhicheng','age':20,'sex':'boy'} print(dic2['name']) #查詢字典里有哪些鍵keys 這個類型需要轉換成list之后才能使用 print(dic2.keys(),"沒轉換的dict_keys類型") # 查出來的鍵都純在類型是dict_keys print(list(dic2.keys()),"轉換后的列表類型") print(list(dic2.values()),'取到字典里所有的值') print(list(dic2.items()),'直接獲取到鍵值對,已元組的類型拿到')
3.改: 直接對這個值進行修改
dic3 = {'name':'sunzhicheng','age':20,'sex':'boy'} dic3['name'] = 'zhicheng' print(dic3,'修改鍵為name的值')
3.1 update將另一個字典的內容付給dic3字典
dic4 = {'1':'1111','2':'2222','name':'333'} dic3.update(dic4) # 將dic4里的內容添加到dic3里邊,如果dic3里有這個鍵就會替換之前的內容,例如鍵name這個dic3里有這個鍵dic4的name就會替換name之前的值重,將新值333給鍵name print(dic3,'dic4的增加給了dic3') print(dic4,'dic4沒有變化')
4.刪: del,pop,popitem,clear
dic5 = {'name':'sunzhicheng','age':20,'sex':'boy','1':'1111','2':'2222','3':'333333'} del dic5['age'] #刪除字典中指定鍵值對 print(dic5) red = dic5.pop('sex') #刪除字典中指定鍵值對並返回值 print(dic5) print(red) #查看返回的內容 dic5.popitem() #隨機刪除 print(dic5,'隨機刪除了') dic5.clear() #清空字典,字段存在,但是內容沒有了 print(dic5)
5.字典嵌套
av_catalog = { '歐美':{ 'www.youporn.com':['很多免費的,世界最大','質量一般'], 'www.pornhub.com':['很多免費的,很大','質量比youpirn高點'], 'letmedothistoyou.com':['多事自拍,高質量圖片很多','資源不多,更新慢'], 'x-art.com':['質量很高,真的很高','全部收費,屌絲請繞行'] }, '日韓':{ 'tokyo':['質量很高,個人已經不喜歡日韓范了','聽說是收費的'] }, '大陸':{ '1024':['全部免費,好人一生平安','服務器在國外,慢'] } } av_catalog['歐美']['www.youporn.com'][1] = '高高清清' #修改指定的值,首先找到大的字典里的鍵,然后在找到資格字典里套的這個字典的鍵,然后在找到要修改的這個內容在列表的位置。 print(av_catalog)
6.字典排序:字典排序根據,鍵來排序
dic6 = {2:333,4:222,3:111} print(sorted(dic6.keys())) #按照鍵排序 print(sorted(dic6.values())) #按照值排序 print(sorted(dic6.items())) #按照鍵排序
7.字典遍歷
#字典遍歷的兩種方式 # for i,v in av_catalog['歐美'].items(): #打印鍵及鍵下的值 # print(i,v) for i in av_catalog: print(i,av_catalog[i])
#查:通過字典的鍵去查詢要查詢的內容