我正在尝试制作lambda函数的字典。它应该能够获取键并处理绑定到该键的任何功能,并输出结果。
func_dict = {
"func1" : (z = lambda x, y: x + y),
"func2" : (z = lambda x, y: x * y)
} # include benchmark functions
func = input("Choose a function: ")
output = func_dict[func](3, 5)
print(output)
Run Code Online (Sandbox Code Playgroud)
该示例应该可以打印,8但是无法运行,并且简单地给我can't assign to dictionary display错误提示
{
"func1" : (z = lambda x, y: x + y),
"func2" : (z = lambda x, y: x * y)
}
Run Code Online (Sandbox Code Playgroud)
(缩进似乎不是问题)如果可能的话,我想避免使用eval()&exec()。
您最初的尝试将引发语法错误。
相反,您希望将lambda函数的定义直接分配给键,如下所示
#The lambda function is assigned as a value of the keys
func_dict = {
"func1" : lambda x, y: x + y,
"func2" : lambda x, y: x * y
}
func = input("Choose a function: ")
output = func_dict[func](3, 5)
print(output)
Run Code Online (Sandbox Code Playgroud)
输出将是
Choose a function: func1
8
Choose a function: func2
15
Run Code Online (Sandbox Code Playgroud)
我认为你的分配z =是有问题的。
尝试
\n\nfunc_dict = {\n "func1" : lambda x, y: x + y,\n "func2" : lambda x, y: x * y\n} # include benchmark functions\nRun Code Online (Sandbox Code Playgroud)\n\n这对我有用:
\n\n \xe2\x9d\xaf\xe2\x9d\xaf\xe2\x9d\xaf python\nPython 3.6.7 (default, Dec 3 2018, 11:24:55)\n[GCC 4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.10.44.4)] on darwin\nType "help", "copyright", "credits" or "license" for more information.\n>>> func_dict = {\n "func1" : lambda x, y: x + y,\n "func2" : lambda x, y: x * y\n} # include benchmark functions... ... ...\n>>> func_dict["func1"](1,2)\n3\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
176 次 |
| 最近记录: |