关于python:从字符串名称创建变量

Creating variables from string names

本问题已经有最佳答案,请猛点这里访问。

我想知道是否有任何方法可以将python中的字符串转换为变量名并为其指定默认值。例如,假设我有这个循环,

1
2
for i in range(1,4):
   "User"+str("i")=0

它会给我变量user1、user2和user3分配一个默认值0,我可以自行修改。我知道使用文件可以做到这一点,但还有其他方法吗?


localsglobals中的

1
2
for i in range(1,4):
    globals()["User"+str(i)] = 0

例如,User2将在全球范围内


您可以使用eval来实现,但一般来说,我建议使用dict来存储键(变量名)和相关值:

1
2
3
4
5
users = {}
for i in range(1,4):
    users["User"+str(i)]=0  
print users
# {'User1': 0, 'User2': 0, 'User3': 0}

只需使用正确的键访问字典,就可以访问每个变量:

1
2
print users['User1']
# 0


您可以使用eval(),https://docs.python.org/2/library/functions.html eval

1
eval(varname +"=" + value);