如何字符串格式化一个变量?
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 = [...]
(其中 x
的 len
为 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,因为它允许以您意想不到的方式进行代码注入。
这是我的脚本:
# 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 = [...]
(其中 x
的 len
为 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,因为它允许以您意想不到的方式进行代码注入。