
python 多级菜单
想要实现多级菜单,需要将菜单结构组织为嵌套字典。然而,在处理多级菜单时,可能会遇到类型转换的问题。
问题:
# 菜单数据
dic_menu = {
"北京": {
"朝阳区": [],
"海淀区": [],
"东城区": [],
},
"上海": {
"黄浦区": [],
"嘉定区": [],
"浦东新区": [],
},
}
# 打印菜单
for city, sub_menu in dic_menu.items():
print(city)
for district, items in sub_menu.items():
print(" - ", district)
运行该代码后会输出以下内容:
立即学习“Python免费学习笔记(深入)”;
北京 - 朝阳区 - 海淀区 - 东城区 上海 - 黄浦区 - 嘉定区 - 浦东新区
此时,如果尝试使用 city.keys() 获取子菜单,会得到 typeerror: 'str' object is not callable 错误。
原因:
程序中使用 for city, sub_menu in dic_menu.items() 遍历菜单数据时,city 是字符串,而不是字典。因此,无法对其调用 keys() 方法。
解决方案:
建议打印一下 dic_menu 的类型信息,以帮助理解其结构:
print(type(dic_menu)) # <class 'dict'>
由此可见,dic_menu 是一个字典,其中的键是城市名称,值是代表子菜单的字典。因此,需要将 city 替换为子菜单字典来获取子菜单的键:
# 打印菜单
for city, sub_menu in dic_menu.items():
print(city)
for district in sub_menu.keys():
print(" - ", district)这样就可以正确输出子菜单内容,不会出现 typeerror 错误。
以上就是Python 多级菜单中如何获取子菜单的键?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号