字典是另一種可變容器模型,且可存儲任意類型對象。
字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({})中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
7a5e03011ea57d485e381b198c39b50.png
圖片1.png
示例一
$ vim dic.py
contacts = {
'Alex' : 13651054608,
'Rachel' : [138137434, 'student', 25],
'Rain' : {'age':28 },
}
if contacts.has_key('Rain'):print '-----------------'
for i in contacts:
print i,i.count('R') #How many times did R appear?
contacts['Alex'] = 3222332322 #change the value of Alex
del contacts['Alex'] # del the key(Alex)
contacts['Alex Li'] = 32223323223 #change the key-value
for k,v in contacts.items():
print k,v #print the key-value
示例二
>>> import tab
>>> contacts = {
... 'Alex' : 13651054608,
... 'Rachel' : [138137434, 'student', 25],
... 'Rain' : {'age':28 },
... }
##刪除第一個
>>> contacts.popitem()
('Rachel', [138137434, 'student', 25])
>>> contacts
{'Alex': 13651054608, 'Rain': {'age': 28}}
>>> contacts['bin'] = 333
>>> contacts
{'bin': 333, 'Alex': 13651054608, 'Rain': {'age': 28}}
>>> contacts.popitem()
('bin', 333)
##指定刪除
>>> contacts.pop('Rain')
{'age': 28}
##get用法
* m['a'],如果本身不存在該鍵,就會報錯
* m.get(‘a’),則不會報錯,還可以設置不存在該鍵時的返回值m.get('a',默認值)
>>> contacts
{'Alex': 13651054608}
>>> contacts.get('Rain') #不報錯
>>> contacts['Rain'] #報錯
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'Rain'
########
contact_dic = {}
with open('contact_list2.txt') as f:
for i in f.readlines(): # loop file content
line = i.strip().split() #去除空格
contact_dic[line[0]] = line[1:] #列表轉化字典
#print contact_dic
if contact_dic.has_key('zhangxiaoteny'):
print contact_dic.get('zhangxiaoteny')
else:
for name, value in contact_dic.items():
if 'zhangxiaoteny' in value: print 'go tyou'
else: print 'no valid record'