1. 程式人生 > >python路4—字典、集合

python路4—字典、集合

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—字典、集合