如何在python中从字典将字符串转换为变量名

时间:2019-05-18 07:13:20

标签: python python-2.7

我有这样的字典

dictionary = {"1":"abc_123","2":"def_456" "3":"ghi_789"}

所以我想将"abc_123"转换为abc_123,因为我有一个函数调用abc_123,有人可以帮助我吗。

2 个答案:

答案 0 :(得分:1)

TL; DR

# You have two functions.
>>> abc = lambda x: x**2
>>> xyz = lambda x: x**3
>>> type(abc), type(xyz)
(<class 'function'>, <class 'function'>)

# You have a key-value map of the names of the functions.
>>> d = {'1':'abc', '2':'xyz'}
>>> type(d['1'])
<class 'str'>

# Convert them into a key-value map of the index and the actual function.
>>> func_d = {k:eval(v) for k,v in d.items()}
>>> func_d[1]

另请参阅:

答案 1 :(得分:0)

您可以按名称从各自的包中getattr()个函数,然后调用它们:

>>> import operator
>>> getattr(operator, "add")
<built-in function add>
>>> getattr(operator, "add")(1, 3)
4

因此,根据您函数(例如abc_123)的存储位置,可能会有所帮助。但是请考虑将函数本身而不是名称存储在字典中。

我还建议您详细阅读Python functions