如何在python中将变量名和值分配给字典作为键值对

时间:2018-01-03 15:25:18

标签: python-3.x

我想取一个变量和变量值并将它们附加到字典中:

mydict = {}
myvar = 5
mydict[myvar] = myvar.value

>>> mydict
{myvar : 5}

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

正如我在评论中所解释的那样,对于任意变量来说这是不可能的(当然除了硬编码之外,例如x = 5 ; {'x': x}

的可能性:

  • 只需使用locals()dir(),但您将获得(可能)不关心的信息(例如当前文件路径,导入的模块等)。

  • 在对其名称进行硬编码时创建特定变量的字典:

    x = 1
    y = 2
    print({var_name: globals()[var_name] for var_name in ['x', 'y']})
    # {'x': 1, 'y': 2}
    
  • 使用有关您要搜索的变量的预定义知识。例如,获取所有定义的intfloat

    的名称
    a = 1
    b = 2
    c = 3.0
    print({var_name: var_value for var_name, var_value in globals().items() 
           if isinstance(var_value, (int, float))})
    # {'c': 3.0, 'a': 1, 'b': 2}