字典的创建方式:
dic={'name':'cindy','age':24,'hobby':'girls','is_handsome':True} #格式{‘键’:‘值’,'键':数字,.........}
print(dic)
print (dic['name'])
不常用的两种创建字典的方法
# a=list((1,2,3,4))
# print(a)
# dic2=dict((('name','cindy'),))
# print(dic2)
增
1 dic1={'name':'cindy'} 2 dic1['age']=24 #在dic1中添加age键 然后赋值为24 3 print (dic1) 4 5 dic1.setdefault('hobby','girl') #在dic1中 若setdefault函数中参数键存在 则不予理会 若没有则添加 并返回相应的字典的值 6 print(dic1) 7 8 red=dic1.setdefault('hobby','girl') 9 print(red)
删
1 dic5 = {'name': 'alex', 'age': 18, 'class': 1} 2 3 dic5.clear() # 清空字典 4 print(dic5) 5 del dic5['name'] #删除字典中指定键值对 6 print(dic5) 7 8 print(dic5.pop('age')) #删除字典中指定键值对,并返回该键值对的值 9 ret=dic5.pop('age') 10 print(ret) 11 print(dic5) 12 13 a = dic5.popitem() #随机删除某组键值对,并以元组方式返回值 14 print(a, dic5) 15 16 del dic5 #删除整个字典
改
dic4={'name':'cindy','age':24,'hobby':'girls','is_handsome':True} dic4['age']=55 print(dic4) dic5={'1':'111','2':'222','hobby':'333'} dic4.update(dic5) #将dic4在dic5中没有的键添加进去 如果有相同的键则修改成dic5的键盘 print(dic4) print(dic5)
查
1 dic3={'name':'cindy','age':24,'hobby':'girls','is_handsome':True} 2 print(dic3['name']) 3 print(dic3.keys()) #keys是所有的键 用字典dic3去调用 可返回所有的键 返回值的类型是'dict_keys'(这个不用管) 4 print(dic3.values()) #value是值 5 print(dic3.items()) #item是key和value都取 6 print(list(dic3.items())) #使用list将取出的值展示成列表
还有一些其他用法
1 dic6=dict.fromkeys(['host1','host2','host3'],'test') #分别赋值 2 print(dic6) #{'host3': 'test', 'host1': 'test', 'host2': 'test'} 3 4 dic6['host2']='abc' #键的替换 5 print(dic6) 6 7 dic6=dict.fromkeys(['host1','host2','host3'],['test1','tets2']) 8 print(dic6) #{'host2': ['test1', 'tets2'], 'host3': ['test1', 'tets2'], 'host1': ['test1', 'tets2']} 9 10 dic6['host2'][1]='test3' 11 print(dic6) #{'host3': ['test1', 'test3'], 'host2': ['test1', 'test3'], 'host1': ['test1', 'test3']} 12 13 14 15 av_catalog = { 16 "欧美":{ 17 "www.youporn.com": ["很多免费的,世界最大的","质量一般"], 18 "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"], 19 "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"], 20 "x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"] 21 }, 22 "日韩":{ 23 "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"] 24 }, 25 "大陆":{ 26 "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"] 27 } 28 } 29 30 av_catalog['欧美']["www.youporn.com"][1]='高清无码' 31 32 33 34 dic={5:'555',2:'666',4:'444'} 35 print(sorted(dic)) #根据键进行排序 36 print(sorted(dic.items())) #根据键进行排序 37 print(sorted(dic.values()) #根据值进行排序 38 39 40 41 42 43 dic7={'name':'cindy','age':18} 44 45 46 for i in dic7: 47 print(i,dic7[i]) #循环遍历字典的推荐方式 print后面的参数第一个是键值 第二个是值 48 49 for i,v in dic7.items(): #循环遍历字典的另外一种方式 效率更低 50 print(i,v)
元组的创建
tup1 = () #空元组 与列表的去别在于 元组不能修改 只是只读
tup2 = (20,) #如果一个元组里面只有一个元素 那么在元素后面要加一个逗号
代码说明:
1 menu={ 2 '北京':{ 3 '朝阳':{ 4 '国贸':{ 5 'CICC':{}, 6 'HP':{}, 7 '渣打银行':{}, 8 'CCTV':{}, 9 }, 10 '望京':{ 11 '陌陌':{}, 12 '奔驰':{}, 13 '360':{}, 14 }, 15 '三里屯':{ 16 '优衣库':{}, 17 'apple':{}, 18 }, 19 '昌平':{ 20 '沙河':{ 21 '老男孩':{}, 22 '阿泰包子':{}, 23 }, 24 '天通苑':{ 25 '链家':{}, 26 '我爱我家':{}, 27 }, 28 '回龙观':{}, 29 }, 30 '海淀':{ 31 '五道口':{ 32 '谷歌':{}, 33 '网易':{}, 34 'Sohu':{}, 35 'Sogo':{}, 36 '快手':{}, 37 } 38 }, 39 40 '中关村':{ 41 'youku':{}, 42 'Iqiyi':{}, 43 '汽车之家':{}, 44 '新东方':{}, 45 'Tencent':{}, 46 } 47 } 48 }, 49 50 51 '上海':{ 52 '浦东':{ 53 '陆家嘴':{ 54 'CICC':{}, 55 '高盛':{}, 56 '摩根':{}, 57 }, 58 '外滩':{ 59 '东方明珠':{}, 60 }, 61 } 62 63 }, 64 '山东':{ 65 '济南':{}, 66 '德州':{ 67 '乐陵':{}, 68 '平原':{}, 69 }, 70 '青岛':{}, 71 }, 72 }
1 current_layer = menu 2 parent_layer = [] 3 while True: 4 for key in current_layer: 5 print(key) 6 choise = input('>>:').strip() 7 if choise in current_layer: 8 parent_layer.append(current_layer) 9 current_layer = current_layer[choise] 10 11 if choise == 'b': 12 if parent_layer: 13 current_layer = parent_layer.pop() 14 else:continue