python之递归
Posted pydevops
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之递归相关的知识,希望对你有一定的参考价值。
meum = { ‘北京‘:{ ‘丰台‘:{ ‘六里桥‘:{ ‘莲怡园‘:{}, ‘莲香园‘:{} }, ‘莲花池‘:{ ‘蓝靛厂‘:{}, ‘火器营‘:{} } }, ‘海淀‘: { ‘五道口‘: { ‘青鸟‘: {}, ‘清华‘: {} }, ‘四季青‘: { ‘田村‘: {}, ‘张庄‘: {} } }, ‘大兴‘: { ‘西红门‘: { ‘星光影视园‘: {}, ‘包商银行‘: {} }, ‘旧宫‘: { ‘张镇‘: {}, ‘王镇‘: {} } }, }, ‘上海‘:{ ‘虹桥‘:{ ‘虹桥机场‘:{ ‘莲怡园‘:{}, ‘莲香园‘:{} }, ‘虹桥火车站‘:{ ‘候车室‘:{}, ‘站台‘:{} } }, ‘外滩‘: { ‘城隍庙‘: { ‘大城隍庙‘: {}, ‘小城隍庙‘: {} }, ‘黄浦江‘: { ‘东口岸‘: {}, ‘西口岸‘: {} } }, ‘浦东‘: { ‘浦东机场‘: { ‘航站楼‘: {}, ‘停机坪‘: {} }, ‘浦发银行‘: { ‘浦发张村支行‘: {}, ‘浦发总行‘: {} } }, }, ‘辽宁‘:{ ‘鞍山‘:{ ‘台安县‘:{ ‘桓洞‘:{}, ‘西佛‘:{} }, ‘岫岩县‘:{ ‘岫岩乡‘:{}, ‘曲阜乡‘:{} } }, ‘盘锦‘: { ‘盘山‘: { ‘大洼‘: {}, ‘达牛‘: {} }, ‘双台子区‘: { ‘台子营‘: {}, ‘张家镇‘: {} } }, ‘沈阳‘: { ‘铁西‘: { ‘兴隆大家庭‘: {}, ‘沈阳银行‘: {} }, ‘皇姑‘: { ‘白塔‘: {}, ‘小学‘: {} } }, } }
def PrintMeum(dict): while True: for k in dict:print(k) key = input("请输入城市:").strip() if key == ‘b‘ or key == ‘q‘:return key # 这里如果第一次直接入b或q则直接退出程序 # 如果已经进入第一层,则开始递归,调用自己并传入字典第二层 # 如果在字典第二层输入b则退出当前递归返回上一层 # 在任何层时输入q则退出程序 elif key in dict.keys() and dict[key]: # 如果输入的字典key在字典中并切输入的字典不是空字典这开始递归调用 ret = PrintMeum(dict[key]) # 如果输入q则退出程序并返回key if ret == ‘q‘: return key # elif (not dict.get(key)) or (not dict[key]): # 如果key不存在在字典中或者字典为空时则返回第一层 # 这部分可有可无,因为只要匹配不到任何key或者q程序会不断循环 # continue PrintMeum(meum)
以上是关于python之递归的主要内容,如果未能解决你的问题,请参考以下文章