一、字典(dictionary)
1)字典的定义

2)字典的查找

3)多级字典联动

4)字典循环

5)练习代码
1 #创建一个新的字典 dict{key:value} 2 #ps: 在字典中取值会比列表取值快 3 dic = { 4 "王二蛋":["男",22,"Oldboy"], 5 "铁柱":["男",25,"Tencent"], 6 "小花":["女",24,"Alibaba"], 7 "小明":["男",20,"Baidu"], 8 "小红":["女",21,"Souhu"] 9 } 10 #取值 11 print("取值: ",dic["铁柱"][0]) 12 print("取值2:", dic.get("铁柱")[0]) 13 #改值 14 dic["铁柱"][1] = 26 15 print("改值: ",dic["铁柱"]) 16 #删除 17 ##指定删 18 # del dic["小红"] 19 # dic.pop("小红") 20 ##随机删 21 # dic.popitem() 22 # print(dic) 23 #字典转列表 24 print("字典转列表: ",dic.items()) 25 #清空字典 26 # dic.clear() 27 # print(dic) 28 #复制一个字典出来,不过,修改字典里面的列表的元素值,其它字典也跟着改变 29 # dic2 = dic.copy() 30 # print(dic2) 31 # dic2["王二蛋"][0] = "女" 32 # print(dic) 33 #生成一个字典,默认每个k值都为None,也可以通过第二个参数为它们统一赋值 34 print(dic.fromkeys(["A","B","C"],"1")) 35 #把字典里的k提取出来组成一个新的列表 36 print(dic.keys()) 37 #更新一个k的v值,如果k不存在,则添加,存在则修改 38 dic.setdefault("王小花",[22,"女","Wangyi"]) 39 print(dic) 40 #合并字典,生成一个新的字典,如果添加的字典中有原字典的k,那么原字典k的值会被替换成添加字典中相同k的值 41 dic2 = {"铁柱":[30]} 42 dic.update(dic2) 43 print(dic) 44 #把字典中所有v的值都提取出来,组成一个新的列表 45 print(dic.values()) 46 #-------------------------------- 分割线 ------------------------------------------------ 47 print("循环".center(100,"-")) 48 #循环 49 for key in dic: 50 print(key,dic[key])
1 #字典练习题 2 dic = { 3 "k1":"v1", 4 "k2":"v2", 5 "k3":"v3" 6 } 7 #循环遍历所有的key 8 print(" 遍历key ".center(50,"-")) 9 for k in dic: 10 print(k) 11 print(" 遍历结束 ".center(50,"-")) 12 #循环遍历所有value 13 print(" 遍历value ".center(50,"-")) 14 for k in dic: 15 print(dic[k]) 16 print(" 遍历结束 ".center(50,"-")) 17 #遍历所有key和value 18 print(" 遍历key和value ".center(50,"-")) 19 for k in dic: 20 print(k,":",dic[k]) 21 print(" 遍历结束 ".center(50,"-")) 22 #添加键值对 23 print(" 添加键值对 ".center(50,"-")) 24 dic.setdefault("k4","v4") 25 print(dic) 26 print(" 键值对添加结束 ".center(50,"-")) 27 #删除指定键值对 28 print(" 删除键值对 ".center(50,"-")) 29 dic.pop("k1") 30 print(dic) 31 print(" 删除结束 ".center(50,"-")) 32 #删除字典指定键,没有改键值则返回None 33 print(" 删除字典指定键,没有改键值则返回None ".center(50,"-")) 34 if dic.get("k5") == None: 35 print("None") 36 else: 37 dic.pop("k5") 38 print(" end ".center(50,"-")) 39 #打印键k2对应的value 40 print(" 打印value ".center(50,"-")) 41 print(dic["k2"]) 42 print(" End ".center(50,"-")) 43 #获取k6对应的value,如果key不存在,则返回None 44 print(" 获取k6对应的value,如果key不存在,则返回None ".center(50,"-")) 45 if dic.get("k6") == None: 46 print("None") 47 else: 48 print(dic["k6"]) 49 print(" End ".center(50,"-")) 50 print( " dic 的 update 操作 ".center(50,"-")) 51 # dic 的 update 52 ##下面是一个字典dic2,用一行代码使其变成 {'a': 'b', 'k4': 'v4', 'k2': 'v2', 'k3': 'v3'} 53 dic2 = {"k2":"v111","a":"b"} 54 dic2.update(dic) 55 print(dic2) 56 print(" End ".center(50,"-")) 57 # 58 lis = [["k",["qwe",20,{"k1":["tt",3,"1"]},89],"ab"]] 59 #把tt变大写 60 ##第一种方法 61 # lis[0][1][2]["k1"][0] = "TT" 62 ##第二种方法 63 dic = {"k1":["TT",3,"1"]} 64 lis[0][1][2].update(dic) 65 print(lis) 66 #把3变成字符串"100" 67 lis[0][1][2]["k1"][1] = "100" 68 print(lis) 69 #把"1"变成101 70 lis[0][1][2]["k1"][2] = 101 71 print(lis) 72 #将提供的列表li中的奇数索引添加到k1键对应的列表值 73 li = [1,2,3,"a","b",4,"c"] 74 temp_lis = []#创建临时空列表,用来存放奇数索引的元素 75 dic = {}#动态字典 76 for i,index in enumerate(li):#遍历列表,提取奇数元素 77 if i % 2 != 0: #取余数,奇数除以2的余数不等于0 78 temp_lis.append(index) #往临时列表中添加元素 79 #print(temp_lis) 80 dic2 = {"k1":temp_lis} 81 dic.update(dic2) #更新dic字典 82 print("update",dic)
二、集合
1)集合的定义

2)交集和差集

3)并集

4)对称差集

5)练习代码
1 # 2 #ps: 集合是无序的 3 set_val = {} 4 print(type(set_val))# <class 'dict'> 5 6 set_val = {1} 7 print(type(set_val))# <class 'set'> 8 #去重 9 set_val = {1,2,3,5,2,2,10} 10 print(set(set_val)) # {3, 1, 10, 2, 5} 11 #列表去重,用set()函数,去重后会把数字按从小到大排序 12 list_val = [2,1,3,4,4,5,6,10,1,4,3] 13 print(set(list_val)) 14 #删除 15 set_val = {1,1,3,4,5,6,7,9,9} 16 set_val.remove(1) #删除指定数字,没有找到会报错 17 print("remove: ",set_val) 18 set_val.discard(3)#删除指定数字,没有找到不会报错,找到直接删 19 print("discard: ",set_val) 20 #添加 21 ##添加一个 22 set_val.add(11) 23 print("add: ",set_val) 24 ##添加多个 25 set_val.update([11,12,13,14,15,16]) 26 print("update: ",set_val) 27 #清空 28 set_val.clear() 29 print("clear: ",set_val) 30 #交集 31 set_iphone7 = {"Alex","rain","jack","old_driver"} 32 set_iphone8 = {"Alex","jack","shanshan","old_boy"} 33 print("交集: ",set_iphone7.intersection(set_iphone8)) 34 print("交集: ",set_iphone7 & set_iphone8) 35 #差集 36 ##只买iPhone7的 37 print("只买iPhone7: ",set_iphone7.difference(set_iphone8)) 38 print("只买iPhone7: ",set_iphone7 - set_iphone8) 39 ##只买iPhone8的 40 print("只买iPhone8: ",set_iphone8.difference(set_iphone7)) 41 print("只买iPhone8: ",set_iphone8 - set_iphone7) 42 #并集 43 print("并集: ",set_iphone7.union(set_iphone8)) 44 print("并集: ",set_iphone7 | set_iphone8) 45 #对称差集 46 ##判断两个集合是否不相交,False表示相交 47 print(set_iphone7.isdisjoint(set_iphone8)) 48 ##判断该合集是否是另一个合集的子集 49 print(set_iphone7.issubset(set_iphone8)) 50 print(set_iphone7 <= set_iphone8) 51 ##判断该合集是否是另一个合集的超集 52 print(set_iphone7.issuperset(set_iphone8)) 53 print(set_iphone7 >= set_iphone8)
三、十六进制

PS:
1.oct()转八进制(以0开头)
2.hex()转十六进制(以0x开头)
3.id()查看内存地址
4.一个字节占8个比特(bit),一个十六进制数占4个二进制位,8个二进制位表示一个字节,那么一个字节表示两个十六进制位
四、编码(参考:http://www.cnblogs.com/alex3714/articles/7550940.html)

浙公网安备 33010602011771号