是否有一种惯用的方法来建立一个字典,其中变量名称为键,值为值?

时间:2014-09-20 03:17:18

标签: python dictionary

是否有一种惯用的(更可能是pythonic)方式来处理这个问题:

title = "my title"
name = "my name"
# [... on and on ...]

my_dict = {
    'title': title,
    'name': name,
    # and on and on
}

基本上,变量名(编码)是键,变量值是值吗?

2 个答案:

答案 0 :(得分:4)

真正的问题是,为什么要首先创建变量?

不是从title = "my title"开始,而是创建字典并使用键(my_dict["title"] = "my title")。

答案 1 :(得分:4)

在Python中,对象没有名称,也不知道自己的名字。因此,给定title,您无法推导出字符串"title"

范围(globalslocalsvars)将名称对象相关联,因此任何此类黑客都必须去通过范围。一种方法是:

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'}

这当然是不受欢迎的。这样做的正确方法是漫长的。