gpt4 book ai didi

python - 使用 python 构建嵌套菜单

转载 作者:行者123 更新时间:2023-12-01 06:34:55 26 4
gpt4 key购买 nike

我正在为连接到 Raspberry PI 的 LCD 屏幕开发 GUI。

我想从这样的字典构建一个菜单:

my_menu = {
"menu1": {
"submenu1": {
"subsubmenu1": None
},
"submenu2": None,
"submenu3": None,
},
"menu2": {
"submenu1": None,
"submenu2": None,
}
}

for item in my_menu:
print(item)
}

我想保持字典中定义的顺序。

问题在于Python字典是无序的,并且LCD屏幕上的菜单项没有按正确的顺序显示。

这样我就可以让它在 JS(使用 json)或 PHP(使用数组)中轻松工作,但我刚刚开始使用 python,我不知道用该语言实现它的最佳方法。

我读过一些有关 OrderedDict 的文章,但我不确定这是一个好主意。

所以我的问题是“如何以干净有效的方式做到这一点”。

我的代码在 python 2.7 下运行,但如果需要我可以升级版本。

感谢您的宝贵时间!

最佳答案

进入有序字典,然后对子菜单进行排序

from collections import OrderedDict

unsorted = {
"menu2": {
"submenu2": {
"subsubmenu1": None
},
"submenu3": None,
"submenu1": None,
},
"menu1": {
"submenu3": None,
"submenu1": None,
}
}

ord_menu = OrderedDict(sorted(unsorted.items()))
for k,v in ord_menu.items():
print(sorted(v))
ord_menu[k] = sorted(v)
print(ord_menu)

如果你只是想保留顺序,只需从 python 3.6 升级即可保留 dict 顺序,from here.

关于python - 使用 python 构建嵌套菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59722176/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com