一。字典的特性。:
(1). python 字典是无序的。(而列表有序) 我们可以把字典理解为一组 key:value 这样的健值对。
(2). python字典的key是唯一的。
(3). 字典可以嵌套字典,嵌套列表。
eg:定义一个字典。对字典进行基本操作。
1 >>> dict = { 2 ... 'one': "1111", 3 ... 'two': "2222", 4 ... 'three': "3333", 5 ... 'foure': "4444", 6 ... } #定义一个字典 7 >>> print(dict) 8 {'two': '2222', 'three': '3333', 'foure': '4444', 'one': '1111'} 9 >>> dict["fave"] = "5555" #增 10 >>> dict 11 {'two': '2222', 'three': '3333', 'foure': '4444', 'one': '1111', 'fave': '5555'} 12 >>> dict.pop("one") #pop函数删除 13 '1111' 14 >>> dict 15 {'two': '2222', 'three': '3333', 'foure': '4444', 'fave': '5555'} 16 >>> del dict["two"] #del删除 17 >>> dict 18 {'three': '3333', 'foure': '4444', 'fave': '5555'} 19 >>> dict["fave"] = "5" #改 20 >>> dict 21 {'three': '3333', 'foure': '4444', 'fave': '5'} 22 >>> dict.get("four") 23 >>> dict.get("foure") #查,字典中不存在不会报错,而是返回 none 24 '4444' 25 >>> dict["foure"] #查,字典中不存在会报错 26 '4444' 27 >>> "four" in dict 28 False 29 >>> "four" not in dict 30 True
eg:字典的嵌套和字典的其他操作。
1 >>> dict = { 2 ... "BeiJing": { 3 ... "Changping": ["1.shangdi","2.xierqi"], 4 ... "Xicheng": ["1.xizhimen","2.dazhongshi"], 5 ... "Tongzhou": ["1.pinguoyuan","2.tuqiao"], 6 ... }, 7 ... "ShangHai": { 8 ... "Baoshan": ["1.hulanlu","2.gongkanglu"], 9 ... "Huangpu": ["1.huangpulu","2.xilu"], 10 ... "Pudong": ["1.putongkaifaqv","2.fudongdaqiao"], 11 ... }, 12 ... "ShenZhen": { 13 ... "Baoan": ["A1","A2"], 14 ... "Futain": ["B1","B2"], 15 ... "Yantian": ["C1","C2"], 16 ... }, 17 ... } #定义一个带嵌套的字典 18 >>> print(dict) 19 {'BeiJing': {'Changping': ['1.shangdi', '2.xierqi'], 'Tongzhou': ['1.pinguoyuan', '2.tuqiao'], 'Xicheng': ['1.xizhimen', '2.dazhongshi']}, 'ShenZhen': {'Futain': ['B1', 'B2'], 'Baoan': ['A1', 'A2'], 'Yantian': ['C1', 'C2']}, 'ShangHai': {'Pudong': ['1.putongkaifaqv', '2.fudongdaqiao'], 'Huangpu': ['1.huangpulu', '2.xilu'], 'Baoshan': ['1.hulanlu', '2.gongkanglu']}} 20 >>> dict.keys() #获取字典里的 key 21 dict_keys(['BeiJing', 'ShenZhen', 'ShangHai']) 22 >>> dict.values() #获取字典里的 values 23 dict_values([{'Changping': ['1.shangdi', '2.xierqi'], 'Tongzhou': ['1.pinguoyuan', '2.tuqiao'], 'Xicheng': ['1.xizhimen', '2.dazhongshi']}, {'Futain': ['B1', 'B2'], 'Baoan': ['A1', 'A2'], 'Yantian': ['C1', 'C2']}, {'Pudong': ['1.putongkaifaqv', '2.fudongdaqiao'], 'Huangpu': ['1.huangpulu', '2.xilu'], 'Baoshan': ['1.hulanlu', '2.gongkanglu']}]) 24 >>> dict.items() #遍历字典 25 dict_items([('BeiJing', {'Changping': ['1.shangdi', '2.xierqi'], 'Tongzhou': ['1.pinguoyuan', '2.tuqiao'], 'Xicheng': ['1.xizhimen', '2.dazhongshi']}), ('ShenZhen', {'Futain': ['B1', 'B2'], 'Baoan': ['A1', 'A2'], 'Yantian': ['C1', 'C2']}), ('ShangHai', {'Pudong': ['1.putongkaifaqv', '2.fudongdaqiao'], 'Huangpu': ['1.huangpulu', '2.xilu'], 'Baoshan': ['1.hulanlu', '2.gongkanglu']})]) 26 27 >>> dict["BeiJing"]["Xicheng"] #打印dict字典里的字典嵌套 28 ['1.xizhimen', '2.dazhongshi'] 29 >>> dict["BeiJing"]["Xicheng"][0] #打印dict字典里列表的嵌套 30 '1.xizhimen' 31 32 >>> for k,v in dict.items(): #for函数遍历dict字典 33 ... print(k,v) 34 ... 35 BeiJing {'Changping': ['1.shangdi', '2.xierqi'], 'Tongzhou': ['1.pinguoyuan', '2.tuqiao'], 'Xicheng': ['1.xizhimen', '2.dazhongshi']} 36 ShenZhen {'Futain': ['B1', 'B2'], 'Baoan': ['A1', 'A2'], 'Yantian': ['C1', 'C2']} 37 ShangHai {'Pudong': ['1.putongkaifaqv', '2.fudongdaqiao'], 'Huangpu': ['1.huangpulu', '2.xilu'], 'Baoshan': ['1.hulanlu', '2.gongkanglu']} 38 >>> list(dict.keys()) #list函数取出dict字典的key 39 ['BeiJing', 'ShenZhen', 'ShangHai'] 40 >>> sorted(dict.keys()) #sorted对dict的key排序 41 ['BeiJing', 'ShangHai', 'ShenZhen'] 42 >>> "BeiJing" not in dict #条件控制 43 False 44 >>>
eg: 字典的update(合并)操作。
1 >>> dict = { 2 ... "a1": 111, 3 ... "a2": 222, 4 ... } 5 >>> dict1 = { 6 ... "b1": 333, 7 ... "b2": 444, 8 ... } 9 >>> dict.update(dict1) #把dict1字典更新到dict字典 10 >>> dict 11 {'a1': 111, 'b2': 444, 'b1': 333, 'a2': 222} 12 >>> dict1 13 {'b2': 444, 'b1': 333} 14 >>>
字典无序且元素唯一。因为字典是hash类型存储数据,使用字典比使用列表查询速度快,但是占用内存比列表多。