字典初始化:
1. dict_a={'a':1,'b':2}
print(dict_a)
print(type(dict_a))
{'a': 1, 'b': 2}
<class 'dict'>
2. dict_b=dict(a=1,b=2)
dict_b=dict({'a':1,'b':2})
dict_b=dict((('a',1),('b',2)))
print(dict_b,type(dict_b))
3. dict_c={}.fromkeys(('a','b','c'),12)
print(dict_c)
{'b': 12, 'a': 12, 'c': 12}
字典的方法
1书斜、adict.keys() 返回一個包含字典所有KEY的列表擂煞;
2混弥、adict.values() 返回一個包含字典所有value的列表;
3颈娜、adict.items() 返回一個包含所有(鍵剑逃,值)元祖的列表;
4官辽、adict.clear() 刪除字典中的所有項(xiàng)或元素蛹磺;
5、adict.copy() 返回一個字典淺拷貝的副本同仆;
6萤捆、adict.fromkeys(seq, val=None) 創(chuàng)建并返回一個新字典,以seq中的元素做該字典的鍵,val做該字典中所有鍵對應(yīng)的初始值(默認(rèn)為None)俗或;
7市怎、adict.get(key, default = None) 返回字典中key對應(yīng)的值,若key不存在字典中辛慰,則返回default的值(default默認(rèn)為None)区匠;
8、adict.has_key(key) 如果key在字典中帅腌,返回True驰弄,否則返回False。 現(xiàn)在用 in 速客、 not in戚篙;
9、adict.iteritems()溺职、adict.iterkeys()岔擂、adict.itervalues() 與它們對應(yīng)的非迭代方法一樣,不同的是它們返回一個迭代子浪耘,而不是一個列表乱灵;
10、adict.pop(key[,default]) 和get方法相似点待。如果字典中存在key阔蛉,刪除并返回key對應(yīng)的vuale弃舒;如果key不存在癞埠,且沒有給出default的值,則引發(fā)keyerror異常聋呢;
11苗踪、adict.setdefault(key, default=None) 和set()方法相似,但如果字典中不存在Key鍵削锰,由 adict[key] = default 為它賦值通铲;
12、adict.update(bdict) 將字典bdict的鍵值對添加到字典adict中器贩。
json:
json.load() 從文件解碼json數(shù)據(jù)
json.loads() 從字符串解碼json數(shù)據(jù) 將已編碼的 JSON 字符串解碼為 Python 對象
json.dump() 編碼json數(shù)據(jù)到文件
json.dumps() 編碼json數(shù)據(jù)到字符串 將 Python 對象編碼成 JSON 字符串
1.導(dǎo)入json模塊
import json
2.定義一個空字典dict_a,空字典dict_b
dict_a={}
dict_b=dict()
3.給dict_a 添加3個key a1,a2,a3分別對應(yīng)的值為b1,b2,b3
dict_a={}
dict_b=dict()
dict_a['a1']='b1'
dict_a['a2']='b2'
dict_a['a3']='b3'
print(dict_a)
{'a1':'b1', 'a3': 'b3', 'a2': 'b2'}
4.獲取dict_a所有的key,命名變量ks,打印輸出ks及ks的數(shù)據(jù)類型
dict_a={}
dict_b=dict()
dict_a['a1']='b1'
dict_a['a2']='b2'
dict_a['a3']='b3'
print(dict_a)
ks=dict_a.keys()
print(ks,type(ks))
{'a3': 'b3', 'a1': 'b1', 'a2': 'b2'}
dict_keys(['a3', 'a1', 'a2']) <class 'dict_keys'>
5.打印dict_a所有的value 命名變量vs,打印輸出vs及vs的數(shù)據(jù)類型
dict_a={'a3': 'b3', 'a1': 'b1', 'a2': 'b2'}
vs=dict_a.values()
print(vs,type(vs))
dict_values(['b1', 'b2', 'b3']) <class 'dict_values'>
6.執(zhí)行代碼print(dict_a.items()) 觀察輸出結(jié)果
dict.items() 返回一個包含字典中(鍵, 值)對元組的列表
dict_items([('a3', 'b3'), ('a1', 'b1'), ('a2', 'b2')])
7.將a1和a3對應(yīng)的值對換
8.打印輸出dict_a
dict_a['a1']='b3'
dict_a['a3']='b1'
dd=dict_a.get('a1')
print(dd)
dict_a['a1']=dict_a['a3']
dict_a['a3']=dd
print(dict_a)
b1
{'a2': 'b2', 'a3': 'b1', 'a1': 'b3'}
9.刪除字典dict_a中a1對應(yīng)的值
10.打印輸出dict_a
ff=dict_a.pop('a1')
print(dict_a)
{'a3': 'b1', 'a2': 'b2', 'a1': 'b3'}
{'a3': 'b1', 'a2': 'b2'}
11.將此時的dict_a數(shù)據(jù)更新到dict_b
dict_b.update(dict_a)
print(dict_b)
{'a3': 'b1', 'a2': 'b2'}
12.打印dict_b 并觀察a1和a4是否在dict_b中
print(dict_b.get('a1'))
print(dict_b.get('a4'))
None
None
13.a1如不存在dict_b中,輸入以下代碼 a1=dict_b.get('a1') 并打印變量a1
a1=dict_b.get('a1')
print(a1)
None
14.將13題變量a1 添加到dict_b中,key為'a1'
dict_b['a1']='a1'
print(dict_b)
{'a3': 'b1', 'a1': 'a1', 'a2': 'b2'}
15.a4如不存在dict_b中,將a4對應(yīng)的值默認(rèn)為'null',并添加到dict_b中,key為'a4'
a4=dict_b.get('a4','null')
dict_b['a4']=a4
16.打印dict_b及其數(shù)據(jù)類型
dict_b['a4']='null'
print(dict_b,type(dict_b))
{'a4': 'null', 'a2': 'b2', 'a1': 'a1', 'a3': 'b1'} <class 'dict'>
17.將dict_b轉(zhuǎn)化為json類型 命名為變量 json_c
json_c=json.dumps(dict_b)
print(json_c,type(json_c))
{"a4": "null", "a1": "a1", "a2": "b2", "a3": "b1"} <class 'str'>
18.打印json_c及其數(shù)據(jù)類型 觀察16題打印結(jié)果和18題結(jié)果 將不同之處指明
類型從字典到字符串
19.將json_c轉(zhuǎn)換為字典類型 命名為dict_c 打印輸出 dict_c及其數(shù)據(jù)類型
dict_c=json.loads(json_c)
print(dict_c,type(dict_c)
{'a2': 'b2', 'a3': 'b1', 'a4': 'null', 'a1': 'a1'} <class 'dict'>