如何字符串格式化一个变量?

How to string formatting a variable?

这是我的脚本:

# I have 100 variables
x0 = 3.14
x1 = 2.72
x2 = 1.41
x3 = 2.33
.... (omit this part)
x100 = 7.77

# xi corresponds to the value that the index i of a list needs to subtract, 
# now I want to loop through the list
for i in range(100):
    lst[i] -= 'x{}'.format(i)

这显然行不通,因为变量不是字符串。那么我应该如何对变量进行字符串格式化?

您应该在此处使用 list

x = [...](其中 xlen 为 100)

然后循环:

for i in range(100):
    lst[i] -= x[i]

(将 list 重命名为 lst 以避免与内置类型发生名称冲突)

您可以使用 locals 访问这些变量:

lst[i] -= locals()['x{}'.format(i)]

为了得到变量的值,可以使用Python的eval function

eval('x{}'.format(i))

请永远不要调用您的列表变量列表。

编辑: 虽然此解决方案适用于这种情况,但建议尽可能避免使用 eval,因为它允许以您意想不到的方式进行代码注入。