Python 串联字符串变量名赋值

Python 串联字符串变量名赋值,python,Python,我是PythonNoob,我想给一个名为wgich is concatenated的变量赋值。我试着搜索,试着出错。这是我的一次尝试 b = 'sometext' (b + "a") = somevalue 非推荐方法#1 使用globals() globals()函数返回全局命名空间中所有可用变量的字典。如果希望在函数中执行相同的操作,可以使用locals()执行相同的操作 请注意,如果您不知道这些变量在运行时可能具有什么名称,则甚至无法访问这些变量 非推荐方法#2 您可以使用内置功能:

我是PythonNoob,我想给一个名为wgich is concatenated的变量赋值。我试着搜索,试着出错。这是我的一次尝试

b = 'sometext'
(b + "a") = somevalue
非推荐方法#1 使用
globals()

globals()
函数返回全局命名空间中所有可用变量的字典。如果希望在函数中执行相同的操作,可以使用
locals()
执行相同的操作

请注意,如果您不知道这些变量在运行时可能具有什么名称,则甚至无法访问这些变量


非推荐方法#2 您可以使用内置功能:

>>> b = 'sometext'
>>> exec("%sa = 123" %b)
>>> sometexta
123
如果要访问此变量,则需要再次使用
exec
,因为您使用的是名为variables的变量

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

使用前两种方法,创建变量非常简单。但是,如果不知道它们是如何创建的,那么在运行时访问它们可能会很痛苦。

有一种内置类型的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']


请参阅。

b='sometext'(换行)b=b+'a'
上的更多功能,因此您想要一个名为
sometexta
的变量?是的,我想要一个名为sometexta@Infinity你也可以做
b='sometext';b+=somevalue
(不必是新行)为什么要这样做?这种构造没有实际用途,我几乎可以肯定这是不可能的。我们可以通过使用一些集合或将变量绑定到对象来完成这些事情。例如,使用地图。然后你可以把键当作你的“名字”很好,我想我永远不会向初学者推荐这样的东西……这是非常非常糟糕的建议。如果你想要变量,那么你实际上需要一个dict。在globals或exec上乱动只会在以后引起更多的痛苦。如何访问这些变量?好的。请停止投我的票。我已经编辑过了。
b['a' + '1'] = 1