一、字典的定义
字典是一种key - value的数据类型;无序的,key值唯一,故去重。
1 #字典是无序的,key值唯一,故去重。 2 info = { 3 'stu101': "TengLan Wu", 4 'stu102': "LongZe Luola", 5 'stu103': "XiaoZe Maliya", 6 'stu104': "JiZe MingBu" 7 } 8 print(info)

1、查找
1 #字典查找 2 print('字典查找'.center(50,'-')) 3 print(info) 4 print(info['stu101']) #不存在报错 5 print(info.get('stu101')) #一般建议用get函数,无返回None 6 print(info.setdefault('stu104')) #和 get() 方法类似,返回指定键的值,如果键不在字典中,将会添加键并将值设置为一个指定值,默认为None 7 print(info) 8 print(info.setdefault('stu001','SongTiangFeng')) 9 print(info) 10 print('stu110' in info) #是否存在key 11 12 13 #字典key值 14 print('字典key值'.center(50,'-')) 15 print(info) 16 info_keys = info.keys() 17 print('字典所有key值: ',info_keys) 18 print('字典所有key值,转化为列表: ',list(info_keys)) 19 20 #字典value值 21 print('字典value值'.center(50,'-')) 22 print(info) 23 info_values = info.values() 24 print('字典所有value值: ',info_values) 25 print('字典所有value值,转化为列表: ',list(info_values)) 26 27 #字典item:以列表形式(并非直接的列表,若要返回列表值还需调用list函数)返回可遍历的(键, 值) 元组列表 28 print('字典item'.center(50,'-')) 29 print(info) 30 info_items = info.items() 31 print('字典值: ',info_items) 32 print('字典值,转化为列表: ',list(info_items))

2、字典修改
1 #字典修改 2 print('字典修改'.center(50,'-')) 3 print(info) 4 info['stu101'] = '武藤兰' #修改 5 info['stu105'] = 'Can laoshi' #增加 6 print(info) 7 8 #合并字典,同一key值更新 9 print('合并字典,同一key值更新'.center(50,'-')) 10 print(info) 11 info2 = {'1':'no.1','2':'mo.2','stu105':'仓**'} 12 info.update(info2) 13 print(info)

3、字典删除
1 #字典删除 2 print('字典删除'.center(50,'-')) 3 print(info) 4 del info['stu104'] #删除 5 info.pop('stu101') #标准删除姿势 6 info.popitem() #随机删除一个,不建议使用 7 print(info)

4、字典遍历
1 #字典遍历 2 print('字典遍历'.center(50,'-')) 3 print(info) 4 for key in info: 5 print(key,info[key]) 6 print('---------') 7 for key,value in info.items(): #数据量大时请勿使用,需转化为列表 8 print(key,value)

5、fromkeys函数
1 #fromkeys函数创建字典 2 print('fromkeys函数创建字典'.center(50,'-')) 3 info3 = dict.fromkeys([1,2,3],'test1') 4 print(info3) 5 info3[2] = 'Test_haha' 6 print(info3) #一切正常 7 8 info4 = dict.fromkeys([1,2,3],{"id1":['aa','bb']}) 9 print(info4) 10 info4[2]['id1'] = ['ccccccc'] #类似列表copy方法 11 print(info4)

6、*男专用字典
1 av_catalog = { 2 "欧美":{ 3 "www.youporn.com": ["很多免费的,世界最大的","质量一般"], 4 "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"], 5 "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"], 6 "x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"] 7 }, 8 "日韩":{ 9 "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"] 10 }, 11 "大陆":{ 12 "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"] 13 } 14 } 15 16 av_catalog["大陆"]["1024"][1] += ",可以用爬虫爬下来" 17 print(av_catalog["大陆"]["1024"])
二、练习:三级列表
要求:
1、打印省、市、县三级菜单
2、可返回上一级
3、可随时退出程序
1 data = { 2 '北京':{}, 3 '山东':{}, 4 '广东':{ 5 "东莞":{ 6 "虎门":["万达广场","虎门销烟"], 7 "莞城":["火车站","。。。"] 8 }, 9 "广州":{ 10 "天河":["网易","珠江新城"], 11 "荔湾":["唯品会","。。。"]}, 12 "佛山":{ 13 "禅城":["格力","祖庙"], 14 "顺德":["美的","美食"]}, 15 } 16 } 17 #print(data) 18 flag = False 19 20 while not flag: 21 for key in data: 22 print(key) 23 chioce = input("输入省>>") 24 if chioce in data: 25 while not flag: 26 for key1 in data[chioce]: 27 print('\t',key1) 28 chioce1 = input("输入市>>") 29 if chioce1 in data[chioce]: 30 while not flag: 31 for key2 in data[chioce][chioce1]: 32 print('\t\t',key2) 33 chioce2 = input("输入区、县>>") 34 if chioce2 in data[chioce][chioce1]: 35 while not flag: 36 for key3 in data[chioce][chioce1][chioce2]: 37 print('\t\t\t',key3) 38 chioce3 = input("请按b返回,或者按q退出>>") 39 if chioce3 == 'q': 40 flag = True 41 elif chioce2 == 'b': 42 pass 43 elif chioce2 == 'q': 44 flag = True 45 elif chioce2 == 'b': 46 break 47 elif chioce1 == 'q': 48 flag = True 49 elif chioce1 == 'b': 50 break 51 elif chioce == 'q': 52 flag = True
浙公网安备 33010602011771号