Python学习笔记4:三级菜单简洁版+list,dir说明
2018-05-23 17:33 一觉天亮 阅读(354) 评论(0) 编辑 收藏 举报1 import os,sys 2 map = { 3 '湖北':{ 4 '武汉':{'江岸区':[('长江北岸','武汉市东北部,'),('70.25平方千米',),(430000,),{'populace':'100W'}], 5 '江汉区':[('武汉市汉口地区中部',),('33.43平方公里',),(430000,),{'populace':'83W'}], 6 '硚口区':[('武汉市主城区西北部',),('41.46平方公里',),(430000,),{'populace':'64W'}], 7 '汉阳区':[('武汉市西南部',),('108平方公里',),(430050,),{'populace':'91W'}], 8 '武昌区':[('武汉市东南部',),('107.76平方千米',),(430061,),{'populace':'106W'}], 9 '青山区':[('武汉市中游南岸',),('80.47平方公里',),(430080,),{'populace':'54W'}], 10 '洪山区':[('武汉市东南部',),('480平方公里',),(430070,),{'populace':'126W'}], 11 '江夏区':[('武汉市南部',),('2018平方公里',),(430200,),{'populace':'82W'}]}, 12 '黄石':{'黄石港区':[('位于鄂东南',),('42.4平方公里',),(43500,),{'populace':'22W'}], 13 '西塞山区':[('长江中游'),('49.95平方公里'),(435000),{'populace':'26W'}], 14 '下陆区':[('黄石市北部',),('75平方公里',),(435005,),{'populace':'11W'}], 15 '铁山区':[('黄石市西部',),('28.7平方公里',),(435006,),{'populace':'7W'}], 16 '阳新县':[('长江以南','幕阜山脉北麓'),('2780平方千米',),(435200,),{'populace':'109W'}], 17 '大冶市':[('长江以南','幕阜山脉以北'),('1566.3平方公里',),(435100,),{'populace':'98W'}]}, 18 '十堰':{'茅箭区':[('十堰市中部',),('540平方公里',),(442000,),{'populace':'27W'}], 19 '张湾区':[('十堰市中部',),('657平方公里',),(442000,),{'populace':'40W'}], 20 '郧阳区':[('十堰市北部、西部',),('3863平方公里',),(442500,),{'populace':'64W'}], 21 '郧西县':[('十堰市西北部',),('3509平方千米',),(442600,),{'populace':'50W'}], 22 '竹山县':[('十堰市西南','竹溪以东,房县以西'),('3586平方千米',),(442200,),{'populace':'51W'}], 23 '竹溪县':[('十堰市西南',),('3279平方公里',),(442300,),{'populace':'36W'}], 24 '房县':[('十堰市南部',),('5115平方公里',),(442100,),{'populace':'49W'}], 25 '丹江口市':[('中国中部','十堰 襄阳的中间','汉江中上游'),('3121平方千米',),(442700,),{'populace':'98W'}]}, 26 '随州':{'曾都区':[('鄂北',),('1316平方公里',),(441300,),{'populace':'82W'}], 27 '随县':[('湖北省北部',),('5673平方公里',),(431500,),{'populace':'107W'}], 28 '广水市':[('武汉市北部','随州市东部'),('2675平方公里',),(432700,),{'populace':'104W'}]}, 29 '荆州':{'沙市区':[('江汉平原腹地','荆州地区东北'),('492平方千米',),(434000,),{'populace':'61W'}], 30 '荆州区':[('湖北省中南部',),('1045平方公里'),(434000),{'populace':'60W'}], 31 '江陵县':[('湖北省中南部',),('1032平方千米',),(434100,),{'populace':'40W'}], 32 '监利县':[('湖北省南部','长江北岸'),('3118平方千米',),(433300,),{'populace':'155W'}], 33 '公安县':[('湖北省中南部','长江中游荆江南岸'),('2258平方公里',),(434300,),{'populace':'102W'}], 34 '松滋市':[('湖北省西南部',),('2235平方公里'),(434200,),{'populace':'85W'}], 35 '石首市':[('湖北省南部','长江中游岸边'),('1427平方千米',),(434400,),{'populace':'98W'}], 36 '洪湖市':[('长江中下游','江汉平原东南部'),('2519平方公里',),(433200,),{'populace':'93W'}]} 37 }, 38 '湖南':{'长沙市':{'芙蓉区':'出水芙蓉,静秋思','天心区':'为百姓请命,为天地立心,为万世开太平', 39 '开福区':'开元盛世,贞观之治','雨花区':'清泉石上流', 40 '望城区':'烽火连三月,家书抵万金','长沙县':'火烧长沙','浏阳市':'湘江有个浏阳河'}, 41 '株洲市':{'天元区':'天王盖地宝','荷塘区':'小荷才露尖尖角','芦淞区':'芦花鸡', 42 '石峰区':'壁立千仞','株洲县':'株洲,株洲'}, 43 '湘潭市':{'岳塘区':'这个人很懒,什么都不想写','雨湖区':'这个人很懒,什么都不想写', 44 '湘乡市':'这个人很懒,什么都不想写','韶山市':'这个人很懒,什么都不想写', 45 '湘潭县':'这个人很懒,什么都不想写'}, 46 '衡阳市':{'雁峰区':'这个人很懒,什么都不想写','石鼓区':'这个人很懒,什么都不想写', 47 '珠晖区':'这个人很懒,什么都不想写','南岳区':'这个人很懒,什么都不想写'}, 48 '邵阳市':{'双清区':'这个人很懒,什么都不想写','大祥区':'这个人很懒,什么都不想写', 49 '北塔区':'这个人很懒,什么都不想写'}, 50 '岳阳市':{'岳阳楼区':'这个人很懒,什么都不想写','君山区':'这个人很懒,什么都不想写', 51 '云溪区':'这个人很懒,什么都不想写','临湘区':'这个人很懒,什么都不想写'}, 52 '常德市':{'武陵区':'这个人很懒,什么都不想写','鼎城区':'这个人很懒,什么都不想写', 53 '石门县':'这个人很懒,什么都不想写'} 54 }, 55 '四川':{'成都市':{'武侯区':'这个人很懒,什么都不想写','锦江区':'这个人很懒,什么都不想写', 56 '青羊区':'这个人很懒,什么都不想写','金牛区':'这个人很懒,什么都不想写'}, 57 '自贡市':{'贡井区':'这个人很懒,什么都不想写','大安区':'这个人很懒,什么都不想写', 58 '沿滩区':'这个人很懒,什么都不想写'}, 59 '德阳市':{'罗江区':'这个人很懒,什么都不想写','中江县':'这个人很懒,什么都不想写', 60 '广汉市':'这个人很懒,什么都不想写'}, 61 '广元市':{'朝天区':'这个人很懒,什么都不想写','青川县':'这个人很懒,什么都不想写', 62 '剑阁县':'这个人很懒,什么都不想写'} 63 }, 64 } 65 66 dir_list = [] 67 while True: 68 for keys in map: 69 print(keys) 70 choose = input('请输入您需要访问的省份:''B[返回]/Q[退去]') 71 if choose in map: 72 dir_list.append(map) 73 map = map[choose] 74 elif choose == 'B': 75 if dir_list: 76 map = dir_list.pop() 77 elif choose == 'Q': 78 sys.exit('您已退出系统,欢迎下次登录') 79 else: 80 print('您的输入有误,请重新输入:') 81 continue
list查看和切片:
1 list = [ 12,34,'永不磨灭的番号','亮剑','士兵突击','a','POP','US','apple',9527] 2 #查看,缩影值从0开始 3 print(list) 4 >>>[12, 34, '永不磨灭的番号', '亮剑', '士兵突击', 'a', 'POP', 'US', 'apple', 9527] 5 print(list[0]) 6 >>>12 7 print(list[-1]) 8 >>>9527 9 #切片, 10 print(list[1:5]) 11 >>>[34, '永不磨灭的番号', '亮剑', '士兵突击'] 12 print(list[5::]) 13 >>>['a', 'POP', 'US', 'apple', 9527] 14 print(list[2:7:3]) #3是步长 15 >>>['永不磨灭的番号', 'a'] 16 print(list[-1:]) 17 >>>[9527] 18 print(list[-5:-1]) 19 >>>['a', 'POP', 'US', 'apple'] 20 print(list[-1:-6]) #不管缩影值为正还是负,实际读取顺序还是从头到尾。 21 >>>[] 22 print(list[-1:3]) 23 >>>[] 24 print(list[::3]) 25 >>>[12, '亮剑', 'POP', 9527] 26 print(list[:3]) 27 >>>[12, 34, '永不磨灭的番号']
统计和缩影位置:
1 list = [ 12,34,'永不磨灭的番号','亮剑','士兵突击','a','POP','US','apple',9527] 2 print(list) 3 print(list.count('a')) #统计元素出现的次数 4 >>>1 5 print(list.index('亮剑')) #查看已知元素对应的缩影位置 6 >>>3
增加:
1 list = [ 12,34,'永不磨灭的番号','亮剑','士兵突击','a','POP','US','apple',9527] 2 #尾部追加 3 list.append(12) 4 print(list) 5 >>>[12, 34, '永不磨灭的番号', '亮剑', '士兵突击', 'a', 'POP', 'US', 'apple', 9527, 12] 6 #指定缩影位置插入 7 list.insert(3,'黎明') 8 print(list) 9 >>>[12, 34, '永不磨灭的番号', '黎明', '亮剑', '士兵突击', 'a', 'POP', 'US', 'apple', 9527, 12] 10 #在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) 11 list_1 = ['指环王','哈利.波特','加勒比海盗',12] 12 list.extend(list) 13 print(list) 14 >>>[12, 34, '永不磨灭的番号', '黎明', '亮剑', '士兵突击', 'a', 'POP', 'US', 'apple', 9527, 12, 12, 34, '永不磨灭的番号', '黎明', '亮剑', '士兵突击', 'a', 'POP', 'US', 'apple', 9527, 12] 15 list.extend(list_1) 16 print(list) 17 >>>[12, 34, '永不磨灭的番号', '黎明', '亮剑', '士兵突击', 'a', 'POP', 'US', 'apple', 9527, 12, 12, 34, '永不磨灭的番号', '黎明', '亮剑', '士兵突击', 'a', 'POP', 'US', 'apple', 9527, 12, '指环王', '哈利.波特', '加勒比海盗', 12]
修改:
1 list = [ 12,34,'永不磨灭的番号','亮剑','士兵突击','a','POP','US','apple',9527] 2 list[1]=3344 3 print(list) 4 >>>[12, 3344, '永不磨灭的番号', '亮剑', '士兵突击', 'a', 'POP', 'US', 'apple', 9527] 5 list[0:3]=['黄昏','日落','夕阳'] 6 print(list) 7 >>>['黄昏', '日落', '夕阳', '亮剑', '士兵突击', 'a', 'POP', 'US', 'apple', 9527]
删除:
1 list = [ 12,34,'永不磨灭的番号','亮剑','士兵突击','a','POP','US','apple',9527] 2 del list[2] #缩影 3 print(list) 4 >>>[12, 34, '亮剑', '士兵突击', 'a', 'POP', 'US', 'apple', 9527] 5 list.remove(12) #元素 6 print(list) 7 >>>[34, '亮剑', '士兵突击', 'a', 'POP', 'US', 'apple', 9527] 8 list.pop() #默认删除最后一个元素 9 print(list) 10 >>>[34, '亮剑', '士兵突击', 'a', 'POP', 'US', 'apple'] 11 list.pop(4) #删除指定缩影值 12 print(list) 13 >>>[34, '亮剑', '士兵突击', 'a', 'US', 'apple'] 14 list.clear() #清空列表 15 print(list) 16 >>>[] 17 del list #删除列表 18 print(list) 19 >>><class 'list'>
排序和复制:
1 list = [ 12,34,'永不磨灭的番号','亮剑','士兵突击','a','POP','US','apple',9527] 2 list_1=list.copy() 3 print(list_1) 4 >>>[12, 34, '永不磨灭的番号', '亮剑', '士兵突击', 'a', 'POP', 'US', 'apple', 9527] 5 list.sort() 6 print(list) # 3.0不同的数据类型不能排序 7 >>>TypeError: '<' not supported between instances of 'str' and 'int' 8 9 list = [ '12','34','永不磨灭的番号','亮剑','士兵突击','a','POP','US','apple','9527'] 10 list.sort() #升序 11 print(list) 12 >>>['12', '34', '9527', 'POP', 'US', 'a', 'apple', '亮剑', '士兵突击', '永不磨灭的番号'] 13 list.sort(reverse=True) #reverse = True 降序 14 print(list) 15 >>>['永不磨灭的番号', '士兵突击', '亮剑', 'apple', 'a', 'US', 'POP', '9527', '34', '12'] 16 list.sort(reverse=False) #reverse = False 升序 17 print(list) 18 >>>['12', '34', '9527', 'POP', 'US', 'a', 'apple', '亮剑', '士兵突击', '永不磨灭的番号'] 19 list.reverse() #对列表的元素进行反向排序 20 print(list) 21 >>>['9527', 'apple', 'US', 'POP', 'a', '士兵突击', '亮剑', '永不磨灭的番号', '34', '12']
判断:
1 list_1 = [ '12','34','永不磨灭的番号','亮剑','士兵突击','a','POP','US','apple','9527'] 2 print('12' in list_1) 3 >>>True 4 print(type(list_1) is list) 5 >>>True
元祖tuple,只读列表。只有查,切片,count 和 index。