是否有一种惯用的(更可能是pythonic)方式来处理这个问题:
title = "my title"
name = "my name"
# [... on and on ...]
my_dict = {
'title': title,
'name': name,
# and on and on
}
基本上,变量名(编码)是键,变量值是值吗?
答案 0 :(得分:4)
真正的问题是,为什么要首先创建变量?
不是从title = "my title"
开始,而是创建字典并使用键(my_dict["title"] = "my title"
)。
答案 1 :(得分:4)
在Python中,对象没有名称,也不知道自己的名字。因此,给定title
,您无法推导出字符串"title"
。
范围(globals
,locals
,vars
)将名称与对象相关联,因此任何此类黑客都必须去通过范围。一种方法是:
title = "my title"
name = "my name"
things_I_want = "title", "name"
scope = vars()
{name: scope[name] for name in things_I_want}
#>>> {'title': 'my title', 'name': 'my name'}
这当然是不受欢迎的。这样做的正确方法是漫长的。