Python 多级菜单中如何获取子菜单的键?
python 多级菜单
想要实现多级菜单,需要将菜单结构组织为嵌套字典。然而,在处理多级菜单时,可能会遇到类型转换的问题。
问题:
# 菜单数据 dic_menu = { "北京": { "朝阳区": [], "海淀区": [], "东城区": [], }, "上海": { "黄浦区": [], "嘉定区": [], "浦东新区": [], }, } # 打印菜单 for city, sub_menu in dic_menu.items(): print(city) for district, items in sub_menu.items(): print(" - ", district)
运行该代码后会输出以下内容:
北京 - 朝阳区 - 海淀区 - 东城区 上海 - 黄浦区 - 嘉定区 - 浦东新区
此时,如果尝试使用 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></class>
由此可见,dic_menu 是一个字典,其中的键是城市名称,值是代表子菜单的字典。因此,需要将 city 替换为子菜单字典来获取子菜单的键:
# 打印菜单 for city, sub_menu in dic_menu.items(): print(city) for district in sub_menu.keys(): print(" - ", district)
这样就可以正确输出子菜单内容,不会出现 typeerror 错误。
以上就是Python 多级菜单中如何获取子菜单的键?的详细内容,更多请关注其它相关文章!