上一篇文章為:→3.3.10元組
字典介紹
想一想:
如果有列表
nameList = ['xiaoZhang', 'xiaoWang', 'xiaoLi'];
需要對(duì)"xiaoWang"這個(gè)名字寫錯(cuò)了,通過(guò)代碼修改:
nameList[1] = 'xiaoxiaoWang'
如果列表的順序發(fā)生了變化,如下
nameList = ['xiaoWang', 'xiaoZhang', 'xiaoLi'];
此時(shí)就需要修改下標(biāo),才能完成名字的修改
nameList[0] = 'xiaoxiaoWang'
有沒(méi)有方法锄列,既能存儲(chǔ)多個(gè)數(shù)據(jù),還能在訪問(wèn)元素的很方便就能夠定位到需要的那個(gè)元素呢觅赊?
答:
字典
另一個(gè)場(chǎng)景:
學(xué)生信息列表,每個(gè)學(xué)生信息包括學(xué)號(hào)琼稻、姓名吮螺、年齡等,如何從中找到某個(gè)學(xué)生的信息帕翻?
>>> studens = [[1001, "王寶強(qiáng)", 24], [1002, "馬蓉", 23], [1005, "宋喆"鸠补,24], ...]
循環(huán)遍歷? No嘀掸!
<1>生活中的字典
<2>軟件開(kāi)發(fā)中的字典
變量info為字典類型:
info = {'name':'班長(zhǎng)', 'id':100, 'sex':'f', 'address':'地球亞洲中國(guó)北京'}
說(shuō)明:
- 字典和列表一樣紫岩,也能夠存儲(chǔ)多個(gè)數(shù)據(jù)
- 列表中找某個(gè)元素時(shí),是根據(jù)下標(biāo)進(jìn)行的
- 字典中找某個(gè)元素時(shí)睬塌,是根據(jù)'名字'(就是冒號(hào):前面的那個(gè)值泉蝌,例如上面代碼中的'name'、'id'揩晴、'sex')
- 字典的每個(gè)元素由2部分組成勋陪,鍵:值。例如 'name':'班長(zhǎng)' ,'name'為鍵硫兰,'班長(zhǎng)'為值
<3>根據(jù)鍵訪問(wèn)值
info = {'name':'班長(zhǎng)', 'id':100, 'sex':'f', 'address':'地球亞洲中國(guó)北京'}
print(info['name'])
print(info['address'])
結(jié)果:
班長(zhǎng)
地球亞洲中國(guó)北京
若訪問(wèn)不存在的鍵诅愚,則會(huì)報(bào)錯(cuò):
>>> info['age']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'age'
在我們不確定字典中是否存在某個(gè)鍵而又想獲取其值時(shí),可以使用get方法劫映,還可以設(shè)置默認(rèn)值:
>>> age = info.get('age')
>>> age #'age'鍵不存在违孝,所以age為None
>>> type(age)
<type 'NoneType'>
>>> age = info.get('age', 18) # 若info中不存在'age'這個(gè)鍵,就返回默認(rèn)值18
>>> age
18