我经常想创建一个字典,其中键是变量名。例如,如果我有变量 a
和 b
我想生成: {"a":a, "b":b}
(通常返回函数数据的末尾)。
python 中是否有任何(理想情况下内置的)方法可以自动执行此操作?即具有这样的功能 create_dictionary(a,b)
返回 {"a":a, "b":b}
原文由 kyrenia 发布,翻译遵循 CC BY-SA 4.0 许可协议
我经常想创建一个字典,其中键是变量名。例如,如果我有变量 a
和 b
我想生成: {"a":a, "b":b}
(通常返回函数数据的末尾)。
python 中是否有任何(理想情况下内置的)方法可以自动执行此操作?即具有这样的功能 create_dictionary(a,b)
返回 {"a":a, "b":b}
原文由 kyrenia 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以为 create_dict
def create_dict(*args):
return dict({i:eval(i) for i in args})
a = "yo"
b = 7
print (create_dict("a", "b"))
这给出了 {'a': 'yo', 'b': 7}
输出。
这是一个简单的生成器:
vars = ["a", "b"]
create_dict = {i:eval(i) for i in args}
或者你可以使用这个单行 lambda 函数
create_dict = lambda *args: {i:eval(i) for i in args}
print (create_dict("a", "b"))
但是如果你想将变量而不是变量名作为字符串传递给函数,那么实际上将变量名作为字符串获取是相当混乱的。但如果是这样的话,那么你应该尝试使用 locals()
, vars()
, globals()
使用的 Nf4
原文由 lycuid 发布,翻译遵循 CC BY-SA 3.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
您是否考虑过创建一个班级?类可以看作是字典的包装器。
或者,如果您想传递变量名称列表,您可以使用
setattr
函数: