我是一个python noob,我想为一个名为wgich的变量赋值。我尝试搜索并进行反复试验。这是我的一次尝试。
b = 'sometext'
(b + "a") = somevalue
答案 0 :(得分:1)
有dict
(字典)的内置类型处理动态键(名称)。它也在内部用于所有类型的东西,比如所有的变量和属性,所以你也应该尝试一下:
b = {} # creates a dictionary
b['a'] = 1 # puts the key 'a' with value 1 into the dictionary
print(b['a']) # prints the value of 'a' (1)
您还可以动态构建密钥:
b['a' + '1'] = 1
将创建一个密钥b [' a1']。
查看https://docs.python.org/3/library/stdtypes.html#mapping-types-dict的更多功能。
答案 1 :(得分:0)
使用globals()
。
>>> b = 'sometext'
>>> globals()[b + 'a'] = 123
>>> sometexta
123
globals()
函数返回全局命名空间中可用的所有变量的字典。如果您希望在函数内部执行相同的操作,则可以使用locals()
执行相同的操作。
请注意,如果您不知道它们在运行时可能具有哪些名称,则无法访问这些变量。
您可以使用exec
内置功能:
>>> b = 'sometext'
>>> exec("%sa = 123" %b)
>>> sometexta
123
如果要访问此变量,则需要再次使用exec
,因为您正在使用变量命名变量。
exec
及其姐妹函数eval
将执行传递给它的任何有效python代码。请记住永远不要让任何用户输入被他们执行,因为它会造成严重的安全威胁。
使用dict
存储“变量”名称变量。只有在知道自己在做什么时才使用前两种方法。在所有其他情况下,字典是最安全的路线:
>>> b = 'sometext'
>>> variables = {}
>>> variables[b + 'a'] = 123
>>> variables[b + 'a']
123
>>> variables['sometexta'] # is the same thing as the above
123
使用前两种方法,创建变量非常简单。但是如果你不知道它们是如何创建的,那么在运行时访问它们可能会很痛苦。