dict_city = {"北京": {"北京": {"东城区", "西城区", "朝阳区"}},
"四川": {"成都市": {"锦江区", "青羊区", "武侯区"},
"自贡市": {"自流井区", "贡井区"},
"南充市": {"高坪区", "嘉陵区", "营山县"}},
"广东": {"广州市": {"荔湾区", "越秀区", "海珠区"},
"韶关市": {"武江区", "曲江区"},
"深圳市": {"罗湖区", "福田区", "南山区"}},
"陕西": {"西安市": {"新城区", "碑林区", "莲湖区"},
"铜川市": {"王益区", "宜君县"}},
"湖南": {"长沙市": {"芙蓉区", "天心区", "长沙县"},
"株洲市": {"荷塘区", "芦淞区"},
"湘潭市": {"雨湖区", "岳塘区"}}}
new_city_dict = dict_city # 动态字典
input_list = [] # 返回列表
city_flag = True
while city_flag:
city_list = []
for i in new_city_dict: # 循环字典
print(i)
city_list.append(i) # 把城市存到列表中
if isinstance(new_city_dict, set): # 判断字典是否是集合(判断是否是最后一层)
while city_flag:
print("后面没有内容了!")
input_return = input("请输入【b】返回/【q】退出:").strip() # 删除输入后的前后空格
if input_return == "b":
new_city_dict = input_list.pop() # 删除列表中的最后一个,赋值给动态字典,相当于返回字典上一层
break
elif input_return == "q":
city_flag = False # 用标志位退出2层循环
else:
print("你输入的内容不正确!")
else:
input_city = input("请选择城市【b】返回/【q】退出:").strip() # 删除输入后的前后空格
if input_city in city_list: # 判断输入的城市是否在列表中
input_list.append(new_city_dict) # 把选择的字典赋值给返回列表
new_city_dict = new_city_dict[input_city] # 选择字典的子类赋值给动态字典,进入到下一层
elif input_city == "b":
if input_list: # 判断是否是空列表
new_city_dict = input_list.pop() # 删除列表中的最后一个,赋值给动态字典,相当于返回字典上一层
else:
print("不能再返回了!")
elif input_city == "q":
break # 退出循环
else:
print("请从列表中选择!")