首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何动态创建变量?

如何动态创建变量?
EN

Stack Overflow用户
提问于 2011-02-18 09:14:01
回答 7查看 429.2K关注 0票数 195

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

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-02-18 09:28:04

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

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

在新的collections module中也有一些有趣的数据结构可能适用。

票数 176
EN

Stack Overflow用户

发布于 2011-02-18 09:41:18

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}
票数 80
EN

Stack Overflow用户

发布于 2011-09-15 05:00:38

使用exec()方法运行任意代码。例如,假设您有一个字典,并且您希望将每个键转换为具有其原始字典值的变量,您可以执行以下操作:

>>> c = {"one": 1, "two": 2}
>>> for k, v in c.items():
...     exec(f"{k} = {v}")
... 
>>> one
1
>>> two
2
票数 69
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5036700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档