1 #Python内置了字典,类似于C/C++的STL(map),C#的Dictionary 2 #字典使用键与值得方式存储,具有极快的查找速度 3 #注意一点:字典的值可以重复,但键唯一 4 #简单的字典创建实例 5 #----------------------------字典创建---------------------------- 6 print("#----------------------------字典创建----------------------------") 7 #实例一: 8 scores = {"omega":98,"alpha":99,"beta":100} 9 print("alpha scores:",scores["alpha"]) 10 11 12 dict1 = {} 13 dict1 = dict1.fromkeys((1,2,3),("number")) #使用内建函数创造一个键1,2,3,值都为number的字典 14 print(dict1) 15 dict1 = dict1.fromkeys((1,2),("数字")) #这里需要记住,fromkeys 只是用来创建字典,并不能修改 16 print(dict1) 17 print("#----------------------------------------------------------------") 18 #---------------------------------------------------------------- 19 #----------------------------字典使用---------------------------- 20 print("#----------------------------字典使用----------------------------") 21 #字典的更新:为scores继续添加元素 22 #注意:当键存在时,为改变键对应得值,当键不存在时创建键,并赋值 23 scores["gamma"] = "88" 24 print("gamma scores:",scores["gamma"]) 25 26 #内置函数dict的用法 27 a = dict(((1,"one"),(2,"two"),(3,"three"))) 28 print("打印字典a:",a) 29 b = dict(一="one",二="two",三="three") 30 print("打印字典b:",b) 31 32 #删除字典元素 33 c = {1:"one",2:"two",3:"three"} 34 print("字典c:",c) 35 del c[1] #删除键1 36 print("字典c:",c) 37 c.clear() #删除字典中所有的元素 38 print("字典c:",c) 39 del c #删除字典 40 41 print("#----------------------------------------------------------------") 42 #---------------------------------------------------------------- 43 #----------------------------字典函数---------------------------- 44 print("#----------------------------字典函数----------------------------") 45 46 #copy函数实例:返回一个字典的潜复制 47 a = {1:"one",2:"two",3:"three"} 48 b = a 49 c = a.copy() 50 print("字典a:",a," id=",id(a)) #注意观察直接赋值和调用copy函数的内存地址区别 51 print("字典b: ",b," id=",id(b)) 52 print("字典c: ",c," id=",id(c)) 53 54 #get函数实例:返回指定键的值,如果键不在字典中,返回default的值 55 #get(key,default=None) 56 a = {1:"one",2:"two"} 57 print(a.get(3)) 58 print(a.get(3, "没有")) 59 60 #key in dict实例:如果键在字典dict里放回true,否则false 61 a = {1:"one",2:"two"} 62 print(1 in a) 63 print(3 in a) 64 print(1 not in a) 65 print(3 not in a) 66 67 #items实例:返回一个可迭代的元组数组 68 a = {1:"one",2:"two"} 69 for key,value in a.items(): 70 print("key:",key," value:",value) 71 72 #keys实例:返回一个可迭代的,所有键的数字 73 a = {1:"one",2:"two"} 74 for key in a.keys(): 75 print("key:",key," value:",a[key]) 76 77 #setdefault 实例:和get()类似,但是如果键不在字典中,将会添加键并将值设为default 78 #setdefault(key,default=None) 79 a = {1:"one",2:"two"} 80 print("键3的值为:",a.setdefault(3,"three")) 81 print("现在字典a:",a) 82 83 #update 实例:dict2的键和值更新到dict里 84 #update(dict2) 85 a = {1:"one",2:"two"} 86 b = {3:"three"} 87 a.update(b) 88 print("现在字典a:",a) 89 90 #values 实例:返回字典中所有的值 91 a = {1:"one",2:"two"} 92 for values in a.values(): 93 print(values, end=" ") 94 print() 95 96 #pop 实例:给点键key,删除键,并返回对应的值 97 a = {1:"one",2:"two"} 98 b = a.pop(1) 99 print("被删除的值为:",b," 现在字典a:",a) 100 101 #popitem() 实例:随机返回并删除字典中的一对键和值(一般删除末尾) 102 a = {1:"one",2:"two"} 103 b = a.popitem() 104 print(a) 105 print(b) 106 107 print("#----------------------------------------------------------------") 108 #---------------------------------------------------------------- 109 #------------------------------集合------------------------------ 110 print("#------------------------------集合------------------------------") 111 #set和dict类似,是一堆键的集合,但不存储value,在集合中没有重复的key 112 #定义 113 s1 = set([1,2,3,4]) 114 s2 = {1,2,3,4} 115 print(s1) 116 print(s2) 117 118 #操作 119 s1 = {1,2,3} 120 s2 = {2,3,4} 121 s3 = s1 & s2 #交集 122 s4 = s1 | s2 #并集 123 s1.add(4) #添加 124 s2.remove(2) #删除 125 126 print("s1:",s1) 127 print("s2:",s2) 128 print("s3:",s3) 129 print("s4:",s4) 130 print(2 in s1) 131 132 print("#----------------------------------------------------------------") 133 #----------------------------------------------------------------