如何更新键为变量的字典?

Kia*_*ray 0 python variables dictionary

我正在尝试使用 dict.update() 更新字典,其中键名称是变量,如下所示:

Dict = {}
Var1 = 1
Var2 = 2

Dict.update(Var1=Var2)
print(Dict)
Run Code Online (Sandbox Code Playgroud)

然而,这输出:

{'变量1':2}

而不是我需要的是:

{1:2}

这不是我的代码,只是一个类似的示例,但是有什么方法可以让它将变量读取为变量而不是字符串?

Mar*_*eed 6

update当您像这样使用时,您正在使用关键字参数,您可以在其中按名称而不是按参数列表中的位置传递参数。此类参数中的关键字被视为名称;拥有变量关键字的唯一方法是使用**kwargs语法将整个字典作为一组 key=value 参数传递。这意味着这起作用。。。

update = { Var1: Var2 }
Dict.update(**update)
Run Code Online (Sandbox Code Playgroud)

。。。除了关键字必须是字符串,而不是数字;尝试使用Var1值 1 作为关键字会触发TypeError.

然而,因为dict.update它是为更新字典而设计的,所以它也接受实际字典作为参数,而无需通过 转换为关键字参数**。所以这确实有效:

Dict.update({ Var1: Var2 })
Run Code Online (Sandbox Code Playgroud)

但在您的情况下,您不需要update或其关键字参数;你可以只使用赋值来代替:

Dict[Var1] = Var2
Run Code Online (Sandbox Code Playgroud)

一些风格上的事情:不要用大写字母命名变量;这通常表明某个值是常数。另外,不要使用“Dict”作为变量名。这样的名称有隐藏内置函数的风险,因为函数和变量在 Python 中共享相同的命名空间。例如,如果您为 赋值dict,则您刚刚删除了指向全局函数的指针dict