如何在Python中重命名循环中的变量

apk*_*ith 6 python variables loops

我想在Python中运行一个程序,该程序循环几次,每次创建一个新数组(即没有数据被覆盖),该数组以循环编号的引用命名,以便我可以在后续循环中调用它。例如,我可能想在从 0 到 i 运行的循环中创建数组 x0、x1、x2、...、xi,然后在运行相同变量的另一个循环中调用每个数组。(本质上相当于能够将变量放入字符串中'string %d %(x)')。

Mar*_*ner 8

您可以访问globals()字典来引入新变量。喜欢:

for i in range(0,5):
    globals()['x'+str(i)] = i
Run Code Online (Sandbox Code Playgroud)

在这个循环之后你得到

>>> x0, x1, x2, x3, x4
(0, 1, 2, 3, 4)
Run Code Online (Sandbox Code Playgroud)

请注意,根据文档,您不应使用locals()字典,因为对此字典的更改可能不会影响解释器使用的值

  • 阅读此答案的任何人请注意:请不要做这种愚蠢的事情。正确的解决方案是使用字典或列表。 (3认同)

Sta*_*ost 2

使用字典:

arraysDict = {}
for i in range(0,3):
    arraysDict['x{0}'.format(i)] = [1,2,3]

print arraysDict
# {'x2': [1, 2, 3], 'x0': [1, 2, 3], 'x1': [1, 2, 3]}
print arraysDict['x1']
# [1,2,3]
Run Code Online (Sandbox Code Playgroud)

使用列表:

arraysList = []
for i in range(0,3):
    arraysList.append([1,2,3])

print arraysList
# [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
print arraysList[1]
# [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)