如何动态创建变量?

新手上路,请多包涵

我想在 Python 中动态创建变量。有没有人有任何创造性的方法来做到这一点?

原文由 Noah R 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 289
2 个回答

除非非常需要创建一堆变量名,否则我只会使用字典,您可以在其中动态创建键名并为每个键名关联一个值。

 a = {}
k = 0
while k < 10:
    # dynamically create key
    key = ...
    # calculate value
    value = ...
    a[key] = value
    k += 1

collections 模块 中还有一些有趣的数据结构可能适用。

原文由 JoshAdel 发布,翻译遵循 CC BY-SA 4.0 许可协议

globals() 返回模块变量的字典。您可以通过在该字典上创建一个键来创建一个新变量:

 # By default, a module has some hidden variables defined
print({k: v for k, v in globals().items() if not k.startswith("__")})

for i in range(1, 11):
    globals()[f"my_variable_{i}"] = i

print()
print(my_variable_1)
print(my_variable_2)
# and so on

print()
print({k: v for k, v in globals().items() if not k.startswith("__")})

结果:

 {}

1
2

{'i': 10, 'my_variable_1': 1, 'my_variable_2': 2, 'my_variable_3': 3, 'my_variable_4': 4, 'my_variable_5': 5, 'my_variable_6': 6, 'my_variable_7': 7, 'my_variable_8': 8, 'my_variable_9': 9, 'my_variable_10': 10}

原文由 eyquem 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题