使用for循环动态创建变量并将它们添加到python中的列表中

问题描述 投票:0回答:1

我想使用 for 循环动态命名变量,为变量赋值,然后将变量添加到列表中。

这是 Tadeck 关于如何在 for 循环中动态创建变量的答案,来自 如何在循环中创建不同的变量名称?:

for x in range(0, 9):
    globals()['string%s' % x] = 'Hello'

print(string3) 

# Output: 'Hello'

因为我也想将变量添加到列表中,所以我尝试了:

lst = []
for x in range(0, 9):
lst.append(globals()['string%s' % x] = 'Hello')

print(lst)

# Output: SyntaxError: expression cannot contain assignment, perhaps you meant "=="? 

# DESIRED OUTPUT: [string0, string1, string2, string3, string4, string5, string6, string7, string8]

我理解错误消息的内容,但我不知道如何绕过它并获得所需的输出。

谢谢!

python variable-assignment
1个回答
0
投票

globals()
返回一个字典,其中包含当前命名空间(docs)中定义的所有变量。

为了更好地理解,可以修改代码如下:

for x in range(0, 9):
    namespace_variables_dict = globals()
    variable_name = 'string%s' % x
    namespace_variables_dict[variable_name] = 'Hello'

print(string3)

并将新变量名称添加到列表中:

lst = []
for x in range(0, 9):
    namespace_variables_dict = globals()
    variable_name = 'string%s' % x
    namespace_variables_dict[variable_name] = 'Hello'
    lst.append(variable_name)

print(lst) # ['string0', 'string1', 'string2', 'string3', 'string4', 'string5', 'string6', 'string7', 'string8']
© www.soinside.com 2019 - 2024. All rights reserved.