字典,至關於一個列表,不過列表的索引是數字,字典的索引是數字或者字符串。數組
一、字典的訪問函數
字典是典型的key-value結構,一個key對應着一個value,key就是索引,value就是要保存的值this
score={'Albert':99, 'QQ':88} print(score['Albert'])#根據key訪問value score['XP']=77#新建一個key-value對 print(score) print('#遍歷value') for i in score:#遍歷value print(i) print('#遍歷key和value') for key,value in score.items(): print(key,value)
輸出spa
99 {'Albert': 99, 'QQ': 88, 'XP': 77} #遍歷value Albert QQ XP #遍歷key和value Albert 99 QQ 88 XP 77
這樣就很方便的解決了索引不是數字的狀況了。code
字典的底層實際上是散列表,或者叫hash表。對象
二、字典的方法blog
(1)clear(self):清除全部內容,將字典變爲None。索引
(2)copy(self):複製一個字典。(這裏注意,不要直接a=b,就像C裏面數組的複製那樣,a=b只是把b的地址賦給a了,修改a的時候就是修改b。用copy函數就能夠把a和b分開。)字符串
b={'Albert':99, 'QQ':88} a=b.copy() a['Albert']=0 print(b) b={'Albert':99, 'QQ':88} a=b a['Albert']=0 print(b)
輸出get
{'Albert': 99, 'QQ': 88} {'Albert': 0, 'QQ': 88}
這就能夠看出來copy與直接賦值的區別了。
(3)fromkeys(*args, **kwargs):根據key創造一個字典
name=['Albert', 'QQ'] score=10 a=dict.fromkeys(name,score) print(a) b=dict.fromkeys(name) print(b)
輸出
{'Albert': 10, 'QQ': 10} {'Albert': None, 'QQ': None}
(4)get(self, k, d=None):若是k(key)在字典中,則返回value。若是不在字典中,就返回d(default)默認返回None
a={'Albert':99, 'QQ':88} print(a.get('QQ')) print(a.get('XP')) print(a.get('XP',100))
輸出
88
None
100
(5)items(self):返回一個包含key和value的集合,一般用來字典裏的key和value
a={'Albert':99, 'QQ':88} for key,value in a.items(): print(key,value)
輸出
Albert 99
QQ 88
(6)keys(self)返回一個只包含key的集合,一般用來字典裏的key
a={'Albert':99, 'QQ':88} for key in a.keys(): print(key)
輸出
Albert
QQ
(7)pop(self, k, d=None):刪除某個k(key),返回相應的value,若是k找不到,就返回d,d默認爲None,會拋出KeyError
a={'Albert':99, 'QQ':88} print(a.pop('QQ')) print(a) print(a.pop('XP','No')) a.pop('XP')#沒有指定d
輸出
88 {'Albert': 99} No Traceback (most recent call last): File "C:/Users/admin/PycharmProjects/temp.py", line 15, in <module> a.pop('XP') KeyError: 'XP'
(8)popitem(self):也是刪除一對Key-Value。可是他會把這一對Key-value當作元組返回。(字典爲空也會報錯)
(9)setdefault(self, k, d=None):至關於get()方法獲取key的value。可是若是key不存在,他會新建一個,並設value爲d,並返回d
a={'Albert':99, 'QQ':88} print(a.setdefault('QQ')) print(a) print(a.setdefault('XP',77)) print(a)
輸出
88 {'Albert': 99, 'QQ': 88} 77 {'Albert': 99, 'QQ': 88, 'XP': 77}
(10)update(self, E=None, **F)用字典EF更新字典
If E is present and has a .keys() method, then does: for k in E: D[k] = E[k]
If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v
In either case, this is followed by: for k in F: D[k] = F[k]
a={'Albert':99, 'QQ':88} E={'Albert':11, 'QQ':22} F=[33,44] print(a) a.update(E) print(a)
輸出
{'Albert': 99, 'QQ': 88} {'Albert': 11, 'QQ': 22}
(11)values(self):主要用來遍歷values
a={'Albert':99, 'QQ':88} print(a.values()) for v in a.values(): print(v)
輸出
dict_values([99, 88])
99
88
經常使用的這幾個對象的全部方法的用法算是看完了,可是我不能保證我都記住了,有個印象就好。用的時候想到有這個方法,再過來查看一下就行,用多了就記住了。