python路4—字典、集合
阿新 • • 發佈:2017-05-31
subset key 增加 traceback card 武漢 cnblogs sub diff
#!/usr/bin/python3 #字典---增刪改查 #穿件一個字典info >>> info = { ... ‘student01‘:‘TenLan Wu‘, ... ‘student02‘:‘LongZe Luola‘, ... ‘student03‘:‘XiaoZe Maliya‘ ... ... } #字典查詢 >>> info {‘student03‘: ‘XiaoZe Maliya‘, ‘student01‘: ‘TenLan Wu‘, ‘student02‘: ‘LongZe Luola‘} >>> info[‘student01‘] #查詢關鍵字student01對應的值,key不存在報錯 ‘TenLan Wu‘ >>> info.get(‘student01‘) #詢關鍵字student01對應的值,key不存在返回None ‘TenLan Wu‘ >>> info.get(‘student05‘) >>> print (info.get(‘stu‘)) None >>> info.values() #查詢字典所有的值 dict_values([‘XiaoZe Maliya‘, ‘TenLan Wu‘, ‘LongZe Luola‘]) >>> info.keys() #查詢字典所有的關鍵字 dict_keys([‘student03‘, ‘student01‘, ‘student02‘]) >>> ‘student01‘ in info #字典info是否存在關鍵字student01 True >>> ‘student05‘ in info False #修改 >>> info[‘student01‘] = ‘Tomas‘ #增加 >>> info[‘student01‘] ‘Tomas‘ >>> info[‘student04‘] = ‘new student‘ >>> info {‘student03‘: ‘XiaoZe Maliya‘, ‘student01‘: ‘Tomas‘, ‘student02‘: ‘LongZe Luola‘, ‘student04‘: ‘new student‘} >>> info.setdefault(‘student01‘,‘default_name‘) #key(student01)存在,不做操作,不存在就添加 ‘Tomas‘ >>> info.setdefault(‘student06‘,‘default_name‘) ‘default_name‘ >>> info {‘student06‘: ‘default_name‘, ‘student03‘: ‘XiaoZe Maliya‘, ‘student01‘: ‘Tomas‘, ‘student02‘: ‘LongZe Luola‘, ‘student04‘: ‘new student‘} >>> #刪除 >>> del info[‘student04‘] >>> info[‘student04‘] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: ‘student04‘ >>> info.pop(‘student03‘) ‘XiaoZe Maliya‘ >>> info[‘student03‘] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: ‘student03‘ >>> info.popitem() #隨機刪除一組key,value (‘student01‘, ‘Tomas‘) >>> >>> print (info.get(‘stu‘)) None ## >>> info {‘student02‘: ‘LongZe Luola‘, ‘student04‘: ‘new student‘} >>> b = {‘student01‘:‘new_student1‘,‘student02‘:‘TangSheng‘} >>> info.update(b) #用b去更新info,key相同則不該,key不同添加 >>> info {‘student04‘: ‘new student‘, ‘student01‘: ‘new_student1‘, ‘student02‘: ‘TangSheng‘} >>> >>> >>> dic = dict.fromkeys([6,7,8],‘test‘) #初始化一個字典,三個keyy(6,7,8),value位test, >>> dic {8: ‘test‘, 6: ‘test‘, 7: ‘test‘} >>> dic2 = dict.fromkeys([6,7,8],[1,{‘name‘:‘tangsheng‘},444]) >>> dic2 {8: [1, {‘name‘: ‘tangsheng‘}, 444], 6: [1, {‘name‘: ‘tangsheng‘}, 444], 7: [1, {‘name‘: ‘tangsheng‘}, 444]} >>> dic2[7][1][‘name‘] #多級字典 ‘tangsheng‘ >>> >>> info.items() #字典轉化成列表 dict_items([(‘student04‘, ‘new student‘), (‘student01‘, ‘new_student1‘), (‘student02‘, ‘TangSheng‘)]) >>> print (info.items()) dict_items([(‘student04‘, ‘new student‘), (‘student01‘, ‘new_student1‘), (‘student02‘, ‘TangSheng‘)]) >>> ##循環字典 >>> for i in info : ... print (i) ... student04 student01 student02 >>> for i in info: ... print (i,info[i]) ... student04 new student student01 new_student1 student02 TangSheng >>> for k,v in info.items(): ... print (k,v) ... student04 new student student01 new_student1 student02 TangSheng >>> #多級字典 >>> multi_dic = { ... ‘湖北省‘:{ ... ‘武漢市‘:[‘武昌‘,‘漢口‘,‘漢陽‘], ... ‘荊州市‘:[‘監利‘,‘朱河‘,‘沙市‘], ... ‘宜昌‘:[‘三遊動‘,‘三峽大壩‘,‘清江畫廊‘] ... }, ... ‘湖南省‘:{ ... ‘長沙市‘:[‘橘子洲‘,‘愛晚亭‘,‘長沙晚報‘], ... ‘嶽陽市‘:[‘嶽陽樓‘,‘洞庭湖‘,‘沙丘‘], ... ‘株洲市‘:[‘炎帝廣場‘,‘神龍公園‘,‘石峰公園‘] ... ... }, ... ‘河南省‘:{ ... ‘鄭州市‘:[‘嵩山‘,‘博物院‘,‘二七紀念塔‘], ... ‘洛陽市‘:[‘龍門石窟‘,‘白馬寺‘,‘麗景門‘], ... ‘開封市‘:[‘開封府‘,‘特塔公園‘,‘清明上河圖‘] ... ... } ... ... } >>> >>> >>> multi_dic {‘湖北省‘: {‘荊州市‘: [‘監利‘, ‘朱河‘, ‘沙市‘], ‘武漢市‘: [‘武昌‘, ‘漢口‘, ‘漢陽‘], ‘宜昌‘: [‘三遊動‘, ‘三峽大壩‘, ‘清江畫廊‘]}, ‘河南省‘: {‘洛陽市‘: [‘龍門石窟‘, ‘白馬寺‘, ‘麗景門‘], ‘開封市‘: [‘開封府‘, ‘特塔公園‘, ‘清明上河圖‘], ‘鄭州市‘: [‘嵩山‘, ‘博物院‘, ‘二七紀念塔‘]}, ‘湖南省‘: {‘長沙市‘: [‘橘子洲‘, ‘愛晚亭‘, ‘長沙晚報‘], ‘株洲市‘: [‘炎帝廣場‘, ‘神龍公園‘, ‘石峰公園‘], ‘嶽陽市‘: [‘嶽陽樓‘, ‘洞庭湖‘, ‘沙丘‘]}} >>> multi_dic[‘湖北省‘][‘武漢市‘][1] ‘漢口‘ >>> multi_dic[‘湖北省‘][‘武漢市‘][1] += ‘,廣埠屯‘ >>> multi_dic[‘湖北省‘][‘武漢市‘][1] ‘漢口,廣埠屯‘ >>> multi_dic {‘湖北省‘: {‘荊州市‘: [‘監利‘, ‘朱河‘, ‘沙市‘], ‘武漢市‘: [‘武昌‘, ‘漢口,廣埠屯‘, ‘漢陽‘], ‘宜昌‘: [‘三遊動‘, ‘三峽大壩‘, ‘清江畫廊‘]}, ‘河南省‘: {‘洛陽市‘: [‘龍門石窟‘, ‘白馬寺‘, ‘麗景門‘], ‘開封市‘: [‘開封府‘, ‘特塔公園‘, ‘清明上河圖‘], ‘鄭州市‘: [‘嵩山‘, ‘博物院‘, ‘二七紀念塔‘]}, ‘湖南省‘: {‘長沙市‘: [‘橘子洲‘, ‘愛晚亭‘, ‘長沙晚報‘], ‘株洲市‘: [‘炎帝廣場‘, ‘神龍公園‘, ‘石峰公園‘], ‘嶽陽市‘: [‘嶽陽樓‘, ‘洞庭湖‘, ‘沙丘‘]}} >>> #集合set >>> list_1 = [1,2,3,4,6,7,6,8,7,9] >>> set_1 = set(list_1) #列表轉化成集合 >>> set_1 {1, 2, 3, 4, 6, 7, 8, 9} >>> set_2 = set([2,3,4,5,10,22,43,]) #創建集合set_2 >>> set_1,set_2 ({1, 2, 3, 4, 6, 7, 8, 9}, {2, 3, 4, 5, 10, 43, 22}) >>> set_1.intersection(set_2) #交集 {2, 3, 4} >>> set_1.union(set_2) #並集 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 43, 22} >>> set_1.difference(set_2) #差集 ,in set_1 but no in set_2 {8, 1, 9, 6, 7} >>> set_3 = set([1,2,6]) >>> set_3.issubset(set_1) #set_3 是否set_1的子集 True >>> set_1.issuperset(set_3) #set_1 是否set-3 的父集 True >>> set_1.symmetric_difference(set_2) #對稱差集,合並set_1和set_2,並去掉去掉相同的元素 {1, 5, 6, 7, 8, 9, 10, 22, 43} >>> set_1.isdisjoint(set_2) #set_1和 set_2有交集返回False,沒有返回True False >>> set_1 & set_2 #交集 {2, 3, 4} >>> set_1 | set_2 #並集 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 43, 22} >>> set_1 - set_2 #差集 {8, 1, 9, 6, 7} >>> set_1 ^ set_2 #對稱差集 {1, 5, 6, 7, 8, 9, 10, 22, 43} #增 >>> set_1.add(999) #添加一個元素 >>> set_1 {1, 2, 3, 4, 6, 7, 8, 9, 999} >>> set_1.update([9999,99999,9999999]) #添加多個元素 >>> set_1 {1, 2, 3, 4, 6, 7, 8, 9, 999, 9999, 9999999, 99999} >>> set_1.remove(2) #刪除一個元素,如果該元素不存在,就報錯 >>> set_1.remove(1) >>> set_1.remove(0) Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 0 >>> len(set_1) #集合的長度 10 >>> ‘2‘ in set_1 #元素’2‘是否在集合set_1中 False >>> ‘22‘ not in set_1 True >>> set_1.pop() #隨機刪除集合中的一個元素 3 >>> set_1.discard (2) #刪除集合元素2,如果不存在do noting >>> set_1.discard (4) >>> set_1 {6, 7, 8, 9, 999, 9999, 9999999, 99999} >>> set_1.discard (6) >>> set_1.discard (55)
python路4—字典、集合