菜单选项似乎没有订购

时间:2015-05-24 17:59:34

标签: python

我在下面的代码中显示了一个用户可以选择输入数字的选项列表。

它工作正常,但我不明白为什么这些选项看起来不是有序的。

而不是:

  

1 - 用户管理
  2 - 上传
  8 - 退出

我有:

  

1 - 用户管理
  8 - 退出
  2 - 上传

你知道问题在哪里吗?

Choice = namedtuple("Choice", ['msg', 'callback'])

def nav():
    print ""
    while True:
        response_options = {'1': Choice(msg="User Management", callback=userManagment),
                            '2': Choice(msg="Uploads", callback=upload),
                            '8': Choice(msg="Exit", callback=sys.exit)}
        result = make_choice(response_options)
        if result is None:
            print "-> Selected option not available."
            print ""
        else:
            result.callback()
    return False

def make_choice(optiontable):
    for resp, choiceobj in optiontable.items():
        print("{} - {}".format(resp, choiceobj.msg))
    print ""
    print "Select an option: "
    print ""
    usr_resp = raw_input(">> ")
    print ""
    return optiontable.get(usr_resp, None)

1 个答案:

答案 0 :(得分:3)

标准python词典是无序的。查看此问题,按键排序字典:How can I sort a dictionary by key?