Python 3.x 如何在python中连接字符串和变量并在其中赋值

Python 3.x 如何在python中连接字符串和变量并在其中赋值,python-3.x,Python 3.x,在连接的变量中是否仍有赋值 我想连接并在其中赋值 for i in range (5): 'serial_' + str(i) = i+5 显示SyntaxError的代码:如果我理解正确,则无法分配给运算符 d = {} In [898]: for i in range (5): ...: d[ ('{}' + str(i)).format('serial_')] = i+5 In [899]: d Out[899]: {'serial_0': 5, 'seria

在连接的变量中是否仍有赋值

我想连接并在其中赋值

for i in range (5):
    'serial_' + str(i) = i+5

显示SyntaxError的代码:如果我理解正确,则无法分配给运算符

d = {}
In [898]: for i in range (5):
     ...:    d[ ('{}' + str(i)).format('serial_')] = i+5


In [899]: d
Out[899]: {'serial_0': 5, 'serial_1': 6, 'serial_2': 7, 'serial_3': 8, 'serial_4': 9}

让我知道这是否是您想要的。

可以使用和内置函数在全局/局部符号表中添加具有串联名称的变量:

>>> for i in range (5):
...     global()['serial_' + str(i)] = i+5
... 
>>> serial_0
5
>>> serial_3
8
然而,根据文档,更改
局部变量返回的字典可能对解释器使用的局部变量值没有影响

此外,由于修改全局符号表不被认为是一种良好的做法,我建议您使用字典来存储您的值,因为这将导致更干净的代码:

>>> d = {f'serial_{i}' : i + 5 for i in range(5)}
>>> d
{'serial_0': 5, 'serial_1': 6, 'serial_2': 7, 'serial_3': 8, 'serial_4': 9}

这只是串联。我想使用这个(serial_5,serial_6…)作为变量名。这会起作用,但我也想知道是否有其他方法可以在不使用dict的情况下实现这一点。就像一个简单的变量(serial_0=5)一样,这看起来是字典的完美用法。可能的重复: