如何在python字典中包含命令

如何在python字典中包含命令,python,dictionary,command,chatbot,Python,Dictionary,Command,Chatbot,我正在创建一个智能聊天机器人。然而,这部分信息是不相关的。我想做的是从字典中调用指令-我将向您展示: dictionary = ["command1": "print("I just called command1!")] dictionary["command1"] 有点像这样。显然你不能那样做。我希望能够有一个包含不同命令的字典,当您使用dictionary[无论您想要什么命令在这里] 你明白我的意思吗 我可以使用函数,但很明显,这会占用大量的空间和代码,当我的聊天机器人中有这么多响应时

我正在创建一个智能聊天机器人。然而,这部分信息是不相关的。我想做的是从字典中调用指令-我将向您展示:

dictionary = ["command1": "print("I just called command1!")]

dictionary["command1"]
有点像这样。显然你不能那样做。我希望能够有一个包含不同命令的字典,当您使用dictionary[无论您想要什么命令在这里]

你明白我的意思吗


我可以使用函数,但很明显,这会占用大量的空间和代码,当我的聊天机器人中有这么多响应时,我负担不起

我真的需要知道如何用一种简单的方式做到这一点


请注意:)

将指令存储为匿名函数:

dictionary = {
    "command1": lambda: print("I just called command1!"),
    "command2": lambda: print("I just called command2!")
}

command = input('Enter command: ')
dictionary[command]()

如果您只是想打印字符串,最好执行以下操作:

dictionary = {"command1": "I just called command1!"}
print(dictionary["command1"])
但如果需要解析实际函数,正如@Uriel Eli在另一个答案中所说的,可以使用lambda

mylist = []
dictionary = {"command1": lambda: print("I just called command1"), "command2": lambda: mylist.append("Here's an appended string!")}

dictionary["command1"]()
dictionary["command2"]()

“这将占用大量空间和大量代码,当我的聊天机器人中有这么多响应时,我负担不起。”如果你有过去十年制造的硬盘,你可能有足够的空间容纳数百万响应。谢谢,这非常有帮助。唯一的问题是当我尝试打印(dictionary[command])时,它会打印它,然后在它之后不重复任何内容,就像它还搜索了lambda…@ShabbyCat之外的其他内容一样,因为dictionary条目是打印的调用。您不应添加其他打印;每一个动作都可以取代印刷品