如何在python中执行以下操作;
for i in range(4):
s_i = 3
所以我得到了
s_0 = 3
s_1 = 3
s_2 = 3
s_3 = 3
答案 0 :(得分:6)
Keep data out of your variable names.如果你想要编号变量,你真的需要一个列表:
s = [3] * 4
然后您可以使用索引表示法访问元素:
s[2] = 5
而不是尝试动态构建变量名。
如果你想要更通用的动态命名变量,比如名字来自用户输入的变量,你真的需要一个字典:
parents = {}
for i in xrange(5):
child = raw_input('Enter child name:')
parent = raw_input('Enter parent name:')
parents[child] = parent
答案 1 :(得分:1)
我没有完全回答你的问题。但我试过这个:
for i in range(4):
exec('s_'+str(i) + '=i')
Out Put :
s_0 = 0
s_1 = 1
s_2 = 2
s_3 = 3
我们正在创建4个变量并为其赋值。
答案 2 :(得分:1)
虽然以下有效,但这似乎是一个非常非常糟糕的主意:
>>> for j in range(4):
... globals()['s_{}'.format(j)] = 3
...
>>> s_0
3
>>> s_1
3
>>> s_2
3
>>> s_3
3
编辑用locals()
替换globals()
。根据{{1}}的{{1}}:
不应修改此词典的内容;变化可能 不影响使用的局部和自由变量的值 解释